@angular/core 17.1.0-next.4 → 17.1.0-rc.0

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 (87) hide show
  1. package/esm2022/primitives/signals/index.mjs +2 -2
  2. package/esm2022/primitives/signals/src/signal.mjs +2 -10
  3. package/esm2022/src/application/application_ref.mjs +24 -12
  4. package/esm2022/src/application/create_application.mjs +2 -2
  5. package/esm2022/src/authoring/input.mjs +12 -5
  6. package/esm2022/src/authoring/input_signal.mjs +28 -1
  7. package/esm2022/src/authoring/input_signal_node.mjs +22 -0
  8. package/esm2022/src/authoring.mjs +1 -4
  9. package/esm2022/src/change_detection/flags.mjs +16 -0
  10. package/esm2022/src/change_detection/scheduling/ng_zone_scheduling.mjs +164 -0
  11. package/esm2022/src/change_detection/scheduling/zoneless_scheduling.mjs +13 -0
  12. package/esm2022/src/change_detection/scheduling/zoneless_scheduling_impl.mjs +56 -0
  13. package/esm2022/src/compiler/compiler_facade_interface.mjs +1 -1
  14. package/esm2022/src/core.mjs +3 -3
  15. package/esm2022/src/core_private_export.mjs +5 -2
  16. package/esm2022/src/core_render3_private_export.mjs +2 -2
  17. package/esm2022/src/defer/dom_triggers.mjs +1 -5
  18. package/esm2022/src/di/inject_switch.mjs +2 -3
  19. package/esm2022/src/di/r3_injector.mjs +8 -6
  20. package/esm2022/src/errors.mjs +1 -1
  21. package/esm2022/src/event_emitter.mjs +1 -2
  22. package/esm2022/src/hydration/utils.mjs +2 -2
  23. package/esm2022/src/hydration/views.mjs +2 -2
  24. package/esm2022/src/linker/view_container_ref.mjs +2 -2
  25. package/esm2022/src/metadata/directives.mjs +1 -1
  26. package/esm2022/src/pending_tasks.mjs +57 -0
  27. package/esm2022/src/platform/platform_ref.mjs +2 -2
  28. package/esm2022/src/render3/after_render_hooks.mjs +16 -34
  29. package/esm2022/src/render3/apply_value_input_field.mjs +16 -0
  30. package/esm2022/src/render3/collect_native_nodes.mjs +2 -3
  31. package/esm2022/src/render3/component_ref.mjs +24 -13
  32. package/esm2022/src/render3/debug/injector_profiler.mjs +1 -1
  33. package/esm2022/src/render3/definition.mjs +27 -68
  34. package/esm2022/src/render3/errors_di.mjs +4 -3
  35. package/esm2022/src/render3/features/host_directives_feature.mjs +2 -3
  36. package/esm2022/src/render3/features/inherit_definition_feature.mjs +31 -9
  37. package/esm2022/src/render3/features/input_transforms_feature.mjs +4 -5
  38. package/esm2022/src/render3/features/ng_onchanges_feature.mjs +4 -3
  39. package/esm2022/src/render3/instructions/advance.mjs +2 -2
  40. package/esm2022/src/render3/instructions/change_detection.mjs +1 -6
  41. package/esm2022/src/render3/instructions/control_flow.mjs +5 -3
  42. package/esm2022/src/render3/instructions/listener.mjs +1 -1
  43. package/esm2022/src/render3/instructions/mark_view_dirty.mjs +4 -3
  44. package/esm2022/src/render3/instructions/shared.mjs +63 -59
  45. package/esm2022/src/render3/instructions/write_to_directive_input.mjs +43 -0
  46. package/esm2022/src/render3/interfaces/container.mjs +1 -6
  47. package/esm2022/src/render3/interfaces/definition.mjs +8 -2
  48. package/esm2022/src/render3/interfaces/node.mjs +1 -1
  49. package/esm2022/src/render3/interfaces/view.mjs +1 -1
  50. package/esm2022/src/render3/jit/environment.mjs +3 -1
  51. package/esm2022/src/render3/node_manipulation.mjs +8 -8
  52. package/esm2022/src/render3/reactivity/effect.mjs +8 -6
  53. package/esm2022/src/render3/reactivity/signal.mjs +1 -1
  54. package/esm2022/src/render3/styling/style_binding_list.mjs +4 -4
  55. package/esm2022/src/render3/util/discovery_utils.mjs +37 -5
  56. package/esm2022/src/render3/util/global_utils.mjs +28 -28
  57. package/esm2022/src/render3/util/injector_discovery_utils.mjs +1 -1
  58. package/esm2022/src/render3/util/injector_utils.mjs +6 -5
  59. package/esm2022/src/render3/util/view_traversal_utils.mjs +3 -12
  60. package/esm2022/src/render3/util/view_utils.mjs +36 -19
  61. package/esm2022/src/render3/view_ref.mjs +2 -1
  62. package/esm2022/src/testability/testability.mjs +3 -15
  63. package/esm2022/src/util/empty.mjs +1 -1
  64. package/esm2022/src/version.mjs +6 -5
  65. package/esm2022/src/zone/ng_zone.mjs +1 -61
  66. package/esm2022/testing/src/component_fixture.mjs +62 -58
  67. package/esm2022/testing/src/logger.mjs +3 -3
  68. package/fesm2022/core.mjs +699 -542
  69. package/fesm2022/core.mjs.map +1 -1
  70. package/fesm2022/primitives/signals.mjs +2 -10
  71. package/fesm2022/primitives/signals.mjs.map +1 -1
  72. package/fesm2022/rxjs-interop.mjs +1 -1
  73. package/fesm2022/testing.mjs +62 -58
  74. package/fesm2022/testing.mjs.map +1 -1
  75. package/index.d.ts +677 -252
  76. package/package.json +1 -1
  77. package/primitives/signals/index.d.ts +3 -4
  78. package/rxjs-interop/index.d.ts +1 -1
  79. package/schematics/migrations/block-template-entities/bundle.js +497 -392
  80. package/schematics/migrations/block-template-entities/bundle.js.map +4 -4
  81. package/schematics/ng-generate/control-flow-migration/bundle.js +663 -459
  82. package/schematics/ng-generate/control-flow-migration/bundle.js.map +4 -4
  83. package/schematics/ng-generate/standalone-migration/bundle.js +816 -616
  84. package/schematics/ng-generate/standalone-migration/bundle.js.map +4 -4
  85. package/testing/index.d.ts +6 -2
  86. package/esm2022/src/change_detection/scheduling.mjs +0 -103
  87. package/esm2022/src/initial_render_pending_tasks.mjs +0 -49
package/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license Angular v17.1.0-next.4
2
+ * @license Angular v17.1.0-rc.0
3
3
  * (c) 2010-2022 Google LLC. https://angular.io/
4
4
  * License: MIT
5
5
  */
@@ -9,6 +9,7 @@ import { BehaviorSubject } from 'rxjs';
9
9
  import { Observable } from 'rxjs';
10
10
  import { ReactiveNode } from '@angular/core/primitives/signals';
11
11
  import { SIGNAL } from '@angular/core/primitives/signals';
12
+ import { SignalNode } from '@angular/core/primitives/signals';
12
13
  import { Subject } from 'rxjs';
13
14
  import { Subscribable } from 'rxjs';
14
15
  import { Subscription } from 'rxjs';
@@ -642,7 +643,7 @@ export declare class ApplicationRef {
642
643
  private _destroyed;
643
644
  private _destroyListeners;
644
645
  private readonly internalErrorHandler;
645
- private readonly zoneIsStable;
646
+ private readonly afterRenderEffectManager;
646
647
  /**
647
648
  * Indicates whether this instance was destroyed.
648
649
  */
@@ -788,6 +789,18 @@ export declare class ApplicationRef {
788
789
  static ɵprov: i0.ɵɵInjectableDeclaration<ApplicationRef>;
789
790
  }
790
791
 
792
+
793
+ /**
794
+ * Marks a component for check (in case of OnPush components) and synchronously
795
+ * performs change detection on the application this component belongs to.
796
+ *
797
+ * @param component Component to {@link ChangeDetectorRef#markForCheck mark for check}.
798
+ *
799
+ * @publicApi
800
+ * @globalApi ng
801
+ */
802
+ declare function applyChanges(component: {}): void;
803
+
791
804
  /**
792
805
  * @publicApi
793
806
  */
@@ -3041,6 +3054,18 @@ export declare interface Directive {
3041
3054
  */
3042
3055
  export declare const Directive: DirectiveDecorator;
3043
3056
 
3057
+ /**
3058
+ * Partial metadata for a given directive instance.
3059
+ * This information might be useful for debugging purposes or tooling.
3060
+ * Currently only `inputs` and `outputs` metadata is available.
3061
+ *
3062
+ * @publicApi
3063
+ */
3064
+ declare interface DirectiveDebugMetadata {
3065
+ inputs: Record<string, string>;
3066
+ outputs: Record<string, string>;
3067
+ }
3068
+
3044
3069
  /**
3045
3070
  * Type of the Directive decorator / constructor function.
3046
3071
  * @publicApi
@@ -3152,63 +3177,8 @@ declare interface DirectiveDefinition<T> {
3152
3177
  selectors?: ɵCssSelectorList;
3153
3178
  /**
3154
3179
  * A map of input names.
3155
- *
3156
- * The format is in: `{[actualPropertyName: string]:(string|[string, string, Function])}`.
3157
- *
3158
- * Given:
3159
- * ```
3160
- * class MyComponent {
3161
- * @Input()
3162
- * publicInput1: string;
3163
- *
3164
- * @Input('publicInput2')
3165
- * declaredInput2: string;
3166
- *
3167
- * @Input({transform: (value: boolean) => value ? 1 : 0})
3168
- * transformedInput3: number;
3169
- * }
3170
- * ```
3171
- *
3172
- * is described as:
3173
- * ```
3174
- * {
3175
- * publicInput1: 'publicInput1',
3176
- * declaredInput2: ['declaredInput2', 'publicInput2'],
3177
- * transformedInput3: [
3178
- * 'transformedInput3',
3179
- * 'transformedInput3',
3180
- * (value: boolean) => value ? 1 : 0
3181
- * ]
3182
- * }
3183
- * ```
3184
- *
3185
- * Which the minifier may translate to:
3186
- * ```
3187
- * {
3188
- * minifiedPublicInput1: 'publicInput1',
3189
- * minifiedDeclaredInput2: [ 'publicInput2', 'declaredInput2'],
3190
- * minifiedTransformedInput3: [
3191
- * 'transformedInput3',
3192
- * 'transformedInput3',
3193
- * (value: boolean) => value ? 1 : 0
3194
- * ]
3195
- * }
3196
- * ```
3197
- *
3198
- * This allows the render to re-construct the minified, public, and declared names
3199
- * of properties.
3200
- *
3201
- * NOTE:
3202
- * - Because declared and public name are usually same we only generate the array
3203
- * `['declared', 'public']` format when they differ.
3204
- * - The reason why this API and `outputs` API is not the same is that `NgOnChanges` has
3205
- * inconsistent behavior in that it uses declared names rather than minified or public. For
3206
- * this reason `NgOnChanges` will be deprecated and removed in future version and this
3207
- * API will be simplified to be consistent with `output`.
3208
3180
  */
3209
- inputs?: {
3210
- [P in keyof T]?: string | [string, string, InputTransformFunction?];
3211
- };
3181
+ inputs?: DirectiveInputs<T>;
3212
3182
  /**
3213
3183
  * A map of output names.
3214
3184
  *
@@ -3304,6 +3274,75 @@ declare type DirectiveDefList = (ɵDirectiveDef<any> | ɵComponentDef<any>)[];
3304
3274
  */
3305
3275
  declare type DirectiveDefListOrFactory = (() => DirectiveDefList) | DirectiveDefList;
3306
3276
 
3277
+ /**
3278
+ * Map of inputs for a given directive/component.
3279
+ *
3280
+ * Given:
3281
+ * ```
3282
+ * class MyComponent {
3283
+ * @Input()
3284
+ * publicInput1: string;
3285
+ *
3286
+ * @Input('publicInput2')
3287
+ * declaredInput2: string;
3288
+ *
3289
+ * @Input({transform: (value: boolean) => value ? 1 : 0})
3290
+ * transformedInput3: number;
3291
+ *
3292
+ * signalInput = input(3);
3293
+ * }
3294
+ * ```
3295
+ *
3296
+ * is described as:
3297
+ * ```
3298
+ * {
3299
+ * publicInput1: 'publicInput1',
3300
+ * declaredInput2: [InputFlags.None, 'declaredInput2', 'publicInput2'],
3301
+ * transformedInput3: [
3302
+ * InputFlags.None,
3303
+ * 'transformedInput3',
3304
+ * 'transformedInput3',
3305
+ * (value: boolean) => value ? 1 : 0
3306
+ * ],
3307
+ * signalInput: [InputFlags.SignalBased, "signalInput"],
3308
+ * }
3309
+ * ```
3310
+ *
3311
+ * Which the minifier may translate to:
3312
+ * ```
3313
+ * {
3314
+ * minifiedPublicInput1: 'publicInput1',
3315
+ * minifiedDeclaredInput2: [InputFlags.None, 'publicInput2', 'declaredInput2'],
3316
+ * minifiedTransformedInput3: [
3317
+ * InputFlags.None,
3318
+ * 'transformedInput3',
3319
+ * 'transformedInput3',
3320
+ * (value: boolean) => value ? 1 : 0
3321
+ * ],
3322
+ * minifiedSignalInput: [InputFlags.SignalBased, "signalInput"],
3323
+ * }
3324
+ * ```
3325
+ *
3326
+ * This allows the render to re-construct the minified, public, and declared names
3327
+ * of properties.
3328
+ *
3329
+ * NOTE:
3330
+ * - Because declared and public name are usually same we only generate the array
3331
+ * `['declared', 'public']` format when they differ, or there is a transform.
3332
+ * - The reason why this API and `outputs` API is not the same is that `NgOnChanges` has
3333
+ * inconsistent behavior in that it uses declared names rather than minified or public. For
3334
+ * this reason `NgOnChanges` will be deprecated and removed in future version and this
3335
+ * API will be simplified to be consistent with `output`.
3336
+ */
3337
+ declare type DirectiveInputs<T> = {
3338
+ [P in keyof T]?: string | [
3339
+ flags: ɵɵInputFlags,
3340
+ publicName: string,
3341
+ declaredName?: string,
3342
+ transform?: InputTransformFunction
3343
+ ];
3344
+ };
3345
+
3307
3346
  declare const DISCONNECTED_NODES = "d";
3308
3347
 
3309
3348
  /**
@@ -3911,6 +3950,49 @@ export declare interface ForwardRefFn {
3911
3950
  (): any;
3912
3951
  }
3913
3952
 
3953
+ /**
3954
+ * Retrieves the component instance associated with a given DOM element.
3955
+ *
3956
+ * @usageNotes
3957
+ * Given the following DOM structure:
3958
+ *
3959
+ * ```html
3960
+ * <app-root>
3961
+ * <div>
3962
+ * <child-comp></child-comp>
3963
+ * </div>
3964
+ * </app-root>
3965
+ * ```
3966
+ *
3967
+ * Calling `getComponent` on `<child-comp>` will return the instance of `ChildComponent`
3968
+ * associated with this DOM element.
3969
+ *
3970
+ * Calling the function on `<app-root>` will return the `MyApp` instance.
3971
+ *
3972
+ *
3973
+ * @param element DOM element from which the component should be retrieved.
3974
+ * @returns Component instance associated with the element or `null` if there
3975
+ * is no component associated with it.
3976
+ *
3977
+ * @publicApi
3978
+ * @globalApi ng
3979
+ */
3980
+ declare function getComponent<T>(element: Element): T | null;
3981
+
3982
+ /**
3983
+ * If inside an embedded view (e.g. `*ngIf` or `*ngFor`), retrieves the context of the embedded
3984
+ * view that the element is part of. Otherwise retrieves the instance of the component whose view
3985
+ * owns the element (in this case, the result is the same as calling `getOwningComponent`).
3986
+ *
3987
+ * @param element Element for which to get the surrounding component instance.
3988
+ * @returns Instance of the component that is around the element or null if the element isn't
3989
+ * inside any component.
3990
+ *
3991
+ * @publicApi
3992
+ * @globalApi ng
3993
+ */
3994
+ declare function getContext<T extends {}>(element: Element): T | null;
3995
+
3914
3996
  /**
3915
3997
  * @publicApi
3916
3998
  */
@@ -3918,6 +4000,115 @@ declare function getDebugNode(nativeNode: any): DebugNode | null;
3918
4000
  export { getDebugNode }
3919
4001
  export { getDebugNode as ɵgetDebugNode }
3920
4002
 
4003
+ /**
4004
+ * Discovers the dependencies of an injectable instance. Provides DI information about each
4005
+ * dependency that the injectable was instantiated with, including where they were provided from.
4006
+ *
4007
+ * @param injector An injector instance
4008
+ * @param token a DI token that was constructed by the given injector instance
4009
+ * @returns an object that contains the created instance of token as well as all of the dependencies
4010
+ * that it was instantiated with OR undefined if the token was not created within the given
4011
+ * injector.
4012
+ */
4013
+ declare function getDependenciesFromInjectable<T>(injector: Injector, token: Type<T> | InjectionToken<T>): {
4014
+ instance: T;
4015
+ dependencies: Omit<InjectedService, 'injectedIn'>[];
4016
+ } | undefined;
4017
+
4018
+ /**
4019
+ * Returns the debug (partial) metadata for a particular directive or component instance.
4020
+ * The function accepts an instance of a directive or component and returns the corresponding
4021
+ * metadata.
4022
+ *
4023
+ * @param directiveOrComponentInstance Instance of a directive or component
4024
+ * @returns metadata of the passed directive or component
4025
+ *
4026
+ * @publicApi
4027
+ * @globalApi ng
4028
+ */
4029
+ declare function getDirectiveMetadata(directiveOrComponentInstance: any): ɵComponentDebugMetadata | DirectiveDebugMetadata | null;
4030
+
4031
+ /**
4032
+ * Retrieves an `Injector` associated with an element, component or directive instance.
4033
+ *
4034
+ * @param elementOrDir DOM element, component or directive instance for which to
4035
+ * retrieve the injector.
4036
+ * @returns Injector associated with the element, component or directive instance.
4037
+ *
4038
+ * @publicApi
4039
+ * @globalApi ng
4040
+ */
4041
+ declare function getInjector(elementOrDir: Element | {}): Injector;
4042
+
4043
+ /**
4044
+ *
4045
+ * Given an injector, this function will return
4046
+ * an object containing the type and source of the injector.
4047
+ *
4048
+ * | | type | source |
4049
+ * |--------------|-------------|-------------------------------------------------------------|
4050
+ * | NodeInjector | element | DOM element that created this injector |
4051
+ * | R3Injector | environment | `injector.source` |
4052
+ * | NullInjector | null | null |
4053
+ *
4054
+ * @param injector the Injector to get metadata for
4055
+ * @returns an object containing the type and source of the given injector. If the injector metadata
4056
+ * cannot be determined, returns null.
4057
+ */
4058
+ declare function getInjectorMetadata(injector: Injector): {
4059
+ type: 'element';
4060
+ source: RElement;
4061
+ } | {
4062
+ type: 'environment';
4063
+ source: string | null;
4064
+ } | {
4065
+ type: 'null';
4066
+ source: null;
4067
+ } | null;
4068
+
4069
+ /**
4070
+ * Gets the providers configured on an injector.
4071
+ *
4072
+ * @param injector the injector to lookup the providers of
4073
+ * @returns ProviderRecord[] an array of objects representing the providers of the given injector
4074
+ */
4075
+ declare function getInjectorProviders(injector: Injector): ɵProviderRecord[];
4076
+
4077
+ declare function getInjectorResolutionPath(injector: Injector): Injector[];
4078
+
4079
+ /**
4080
+ * Retrieves a list of event listeners associated with a DOM element. The list does include host
4081
+ * listeners, but it does not include event listeners defined outside of the Angular context
4082
+ * (e.g. through `addEventListener`).
4083
+ *
4084
+ * @usageNotes
4085
+ * Given the following DOM structure:
4086
+ *
4087
+ * ```html
4088
+ * <app-root>
4089
+ * <div (click)="doSomething()"></div>
4090
+ * </app-root>
4091
+ * ```
4092
+ *
4093
+ * Calling `getListeners` on `<div>` will return an object that looks as follows:
4094
+ *
4095
+ * ```ts
4096
+ * {
4097
+ * name: 'click',
4098
+ * element: <div>,
4099
+ * callback: () => doSomething(),
4100
+ * useCapture: false
4101
+ * }
4102
+ * ```
4103
+ *
4104
+ * @param element Element for which the DOM listeners should be retrieved.
4105
+ * @returns Array of event listeners on the DOM element.
4106
+ *
4107
+ * @publicApi
4108
+ * @globalApi ng
4109
+ */
4110
+ declare function getListeners(element: Element): Listener[];
4111
+
3921
4112
  /**
3922
4113
  * Returns the NgModuleFactory with the given id (specified using [@NgModule.id
3923
4114
  * field](api/core/NgModule#id)), if it exists and has been loaded. Factories for NgModules that do
@@ -3935,6 +4126,23 @@ export declare function getModuleFactory(id: string): NgModuleFactory<any>;
3935
4126
  */
3936
4127
  export declare function getNgModuleById<T>(id: string): Type<T>;
3937
4128
 
4129
+ /**
4130
+ * Retrieves the component instance whose view contains the DOM element.
4131
+ *
4132
+ * For example, if `<child-comp>` is used in the template of `<app-comp>`
4133
+ * (i.e. a `ViewChild` of `<app-comp>`), calling `getOwningComponent` on `<child-comp>`
4134
+ * would return `<app-comp>`.
4135
+ *
4136
+ * @param elementOrDir DOM element, component or directive instance
4137
+ * for which to retrieve the root components.
4138
+ * @returns Component instance whose view owns the DOM element or null if the element is not
4139
+ * part of a component view.
4140
+ *
4141
+ * @publicApi
4142
+ * @globalApi ng
4143
+ */
4144
+ declare function getOwningComponent<T>(elementOrDir: Element | {}): T | null;
4145
+
3938
4146
  /**
3939
4147
  * Returns the current platform.
3940
4148
  *
@@ -3942,6 +4150,19 @@ export declare function getNgModuleById<T>(id: string): Type<T>;
3942
4150
  */
3943
4151
  export declare function getPlatform(): PlatformRef | null;
3944
4152
 
4153
+ /**
4154
+ * Retrieves all root components associated with a DOM element, directive or component instance.
4155
+ * Root components are those which have been bootstrapped by Angular.
4156
+ *
4157
+ * @param elementOrDir DOM element, component or directive instance
4158
+ * for which to retrieve the root components.
4159
+ * @returns Root components associated with the target object.
4160
+ *
4161
+ * @publicApi
4162
+ * @globalApi ng
4163
+ */
4164
+ declare function getRootComponents(elementOrDir: Element | {}): {}[];
4165
+
3945
4166
  /**
3946
4167
  * Adapter interface for retrieving the `Testability` service associated for a
3947
4168
  * particular context.
@@ -3953,6 +4174,12 @@ export declare interface GetTestability {
3953
4174
  findTestabilityInTree(registry: TestabilityRegistry, elem: any, findInAncestors: boolean): Testability | null;
3954
4175
  }
3955
4176
 
4177
+ /**
4178
+ * This value reflects the property on the window where the dev
4179
+ * tools are patched (window.ng).
4180
+ * */
4181
+ declare const GLOBAL_PUBLISH_EXPANDO_KEY = "ng";
4182
+
3956
4183
  /**
3957
4184
  * The goal here is to make sure that the browser DOM API is the Renderer.
3958
4185
  * We do this by defining a subset of DOM API to be the renderer and then
@@ -3965,6 +4192,29 @@ declare type GlobalTargetName = 'document' | 'window' | 'body';
3965
4192
 
3966
4193
  declare type GlobalTargetResolver = (element: any) => EventTarget;
3967
4194
 
4195
+ declare const globalUtilsFunctions: {
4196
+ /**
4197
+ * Warning: functions that start with `ɵ` are considered *INTERNAL* and should not be relied upon
4198
+ * in application's code. The contract of those functions might be changed in any release and/or a
4199
+ * function can be removed completely.
4200
+ */
4201
+ ɵgetDependenciesFromInjectable: typeof getDependenciesFromInjectable;
4202
+ ɵgetInjectorProviders: typeof getInjectorProviders;
4203
+ ɵgetInjectorResolutionPath: typeof getInjectorResolutionPath;
4204
+ ɵgetInjectorMetadata: typeof getInjectorMetadata;
4205
+ ɵsetProfiler: (profiler: ɵProfiler | null) => void;
4206
+ getDirectiveMetadata: typeof getDirectiveMetadata;
4207
+ getComponent: typeof getComponent;
4208
+ getContext: typeof getContext;
4209
+ getListeners: typeof getListeners;
4210
+ getOwningComponent: typeof getOwningComponent;
4211
+ getHostElement: typeof ɵgetHostElement;
4212
+ getInjector: typeof getInjector;
4213
+ getRootComponents: typeof getRootComponents;
4214
+ getDirectives: typeof ɵgetDirectives;
4215
+ applyChanges: typeof applyChanges;
4216
+ };
4217
+
3968
4218
  /**
3969
4219
  * Array of hooks that should be executed for a view and their directive indices.
3970
4220
  *
@@ -4622,11 +4872,12 @@ declare type InitialInputData = (InitialInputs | null)[];
4622
4872
  *
4623
4873
  * i+0: attribute name
4624
4874
  * i+1: minified/internal input name
4625
- * i+2: initial value
4875
+ * i+2: input flags
4876
+ * i+3: initial value
4626
4877
  *
4627
4878
  * e.g. ['role-min', 'minified-input', 'button']
4628
4879
  */
4629
- declare type InitialInputs = string[];
4880
+ declare type InitialInputs = (string | ɵɵInputFlags)[];
4630
4881
 
4631
4882
  /**
4632
4883
  * Type of the Inject metadata.
@@ -4817,6 +5068,36 @@ export declare interface InjectDecorator {
4817
5068
  new (token: any): Inject;
4818
5069
  }
4819
5070
 
5071
+ /**
5072
+ * An object that contains information a service that has been injected within an
5073
+ * InjectorProfilerContext
5074
+ */
5075
+ declare interface InjectedService {
5076
+ /**
5077
+ * DI token of the Service that is injected
5078
+ */
5079
+ token?: Type<unknown> | InjectionToken<unknown>;
5080
+ /**
5081
+ * Value of the injected service
5082
+ */
5083
+ value: unknown;
5084
+ /**
5085
+ * Flags that this service was injected with
5086
+ */
5087
+ flags?: InternalInjectFlags | InjectFlags | InjectOptions;
5088
+ /**
5089
+ * Injector that this service was provided in.
5090
+ */
5091
+ providedIn?: Injector;
5092
+ /**
5093
+ * In NodeInjectors, the LView and TNode that serviced this injection.
5094
+ */
5095
+ injectedIn?: {
5096
+ lView: LView;
5097
+ tNode: TNode;
5098
+ };
5099
+ }
5100
+
4820
5101
  /**
4821
5102
  * Injection flags for DI.
4822
5103
  *
@@ -5088,6 +5369,33 @@ export declare interface Input {
5088
5369
  */
5089
5370
  export declare const Input: InputDecorator;
5090
5371
 
5372
+ /**
5373
+ * The `input` function allows declaration of inputs in directives and
5374
+ * components.
5375
+ *
5376
+ * Initializes an input with an initial value. If no explicit value
5377
+ * is specified, Angular will use `undefined`.
5378
+ *
5379
+ * Consider using `input.required` for inputs that don't need an
5380
+ * initial value.
5381
+ *
5382
+ * @usageNotes
5383
+ * Initialize an input in your directive or component by declaring a
5384
+ * class field and initializing it with the `input()` function.
5385
+ *
5386
+ * ```ts
5387
+ * @Directive({..})
5388
+ * export class MyDir {
5389
+ * firstName = input<string>(); // string|undefined
5390
+ * lastName = input.required<string>(); // string
5391
+ * age = input(0); // number
5392
+ * }
5393
+ * ```
5394
+ *
5395
+ * @developerPreview
5396
+ */
5397
+ export declare const input: InputFunction;
5398
+
5091
5399
  /**
5092
5400
  * @publicApi
5093
5401
  */
@@ -5147,17 +5455,128 @@ export declare interface InputDecorator {
5147
5455
  new (arg?: string | Input): any;
5148
5456
  }
5149
5457
 
5458
+ /**
5459
+ * The `input` function allows declaration of inputs in directives and
5460
+ * components.
5461
+ *
5462
+ * The function exposes an API for also declaring required inputs via the
5463
+ * `input.required` function.
5464
+ *
5465
+ * @usageNotes
5466
+ * Initialize an input in your directive or component by declaring a
5467
+ * class field and initializing it with the `input()` or `input.required()`
5468
+ * function.
5469
+ *
5470
+ * ```ts
5471
+ * @Directive({..})
5472
+ * export class MyDir {
5473
+ * firstName = input<string>(); // string|undefined
5474
+ * lastName = input.required<string>(); // string
5475
+ * age = input(0); // number
5476
+ * }
5477
+ * ```
5478
+ *
5479
+ * @developerPreview
5480
+ */
5481
+ export declare interface InputFunction {
5482
+ /**
5483
+ * Initializes an input with an initial value. If no explicit value
5484
+ * is specified, Angular will use `undefined`.
5485
+ *
5486
+ * Consider using `input.required` for inputs that don't need an
5487
+ * initial value.
5488
+ *
5489
+ * @developerPreview
5490
+ */
5491
+ <ReadT>(): InputSignal<ReadT | undefined>;
5492
+ <ReadT>(initialValue: ReadT, opts?: InputOptionsWithoutTransform<ReadT>): InputSignal<ReadT>;
5493
+ <ReadT, WriteT>(initialValue: ReadT, opts: InputOptionsWithTransform<ReadT, WriteT>): InputSignal<ReadT, WriteT>;
5494
+ /**
5495
+ * Initializes a required input.
5496
+ *
5497
+ * Users of your directive/component need to bind to this
5498
+ * input. If unset, a compile time error will be reported.
5499
+ *
5500
+ * @developerPreview
5501
+ */
5502
+ required: {
5503
+ <ReadT>(opts?: InputOptionsWithoutTransform<ReadT>): InputSignal<ReadT>;
5504
+ <ReadT, WriteT>(opts: InputOptionsWithTransform<ReadT, WriteT>): InputSignal<ReadT, WriteT>;
5505
+ };
5506
+ }
5507
+
5508
+ /**
5509
+ * @developerPreview
5510
+ *
5511
+ * Options for signal inputs.
5512
+ */
5513
+ export declare interface InputOptions<ReadT, WriteT> {
5514
+ /** Optional public name for the input. By default, the class field name is used. */
5515
+ alias?: string;
5516
+ /**
5517
+ * Optional transform that runs whenever a new value is bound. Can be used to
5518
+ * transform the input value before the input is updated.
5519
+ *
5520
+ * The transform function can widen the type of the input. For example, consider
5521
+ * an input for `disabled`. In practice, as the component author, you want to only
5522
+ * deal with a boolean, but users may want to bind a string if they just use the
5523
+ * attribute form to bind to the input via `<my-dir input>`. A transform can then
5524
+ * handle such string values and convert them to `boolean`. See: {@link booleanAttribute}.
5525
+ */
5526
+ transform?: (v: WriteT) => ReadT;
5527
+ }
5528
+
5529
+ /**
5530
+ * Signal input options without the transform option.
5531
+ *
5532
+ * @developerPreview
5533
+ */
5534
+ export declare type InputOptionsWithoutTransform<ReadT> = Omit<InputOptions<ReadT, ReadT>, 'transform'> & {
5535
+ transform?: undefined;
5536
+ };
5537
+
5538
+ /**
5539
+ * Signal input options with the transform option required.
5540
+ *
5541
+ * @developerPreview
5542
+ */
5543
+ export declare type InputOptionsWithTransform<ReadT, WriteT> = Required<Pick<InputOptions<ReadT, WriteT>, 'transform'>> & InputOptions<ReadT, WriteT>;
5544
+
5150
5545
  /**
5151
5546
  * `InputSignal` is represents a special `Signal` for a directive/component input.
5152
5547
  *
5153
5548
  * An input signal is similar to a non-writable signal except that it also
5154
5549
  * carries additional type-information for transforms, and that Angular internally
5155
5550
  * updates the signal whenever a new value is bound.
5551
+ *
5552
+ * @developerPreview
5156
5553
  */
5157
- export declare type InputSignal<ReadT, WriteT = ReadT> = Signal<ReadT> & {
5554
+ export declare interface InputSignal<ReadT, WriteT = ReadT> extends Signal<ReadT> {
5555
+ [SIGNAL]: InputSignalNode<ReadT, WriteT>;
5158
5556
  [ɵINPUT_SIGNAL_BRAND_READ_TYPE]: ReadT;
5159
5557
  [ɵINPUT_SIGNAL_BRAND_WRITE_TYPE]: WriteT;
5160
- };
5558
+ }
5559
+
5560
+ /**
5561
+ * Reactive node type for an input signal. An input signal extends a signal.
5562
+ * There are special properties to enable transforms and required inputs.
5563
+ */
5564
+ declare interface InputSignalNode<ReadT, WriteT> extends SignalNode<ReadT | typeof REQUIRED_UNSET_VALUE> {
5565
+ /**
5566
+ * User-configured transform that will run whenever a new value is applied
5567
+ * to the input signal node.
5568
+ */
5569
+ transformFn: ((value: WriteT) => ReadT) | undefined;
5570
+ /**
5571
+ * Applies a new value to the input signal. Expects transforms to be run
5572
+ * manually before.
5573
+ *
5574
+ * This function is called by the framework runtime code whenever a binding
5575
+ * changes. The value can in practice be anything at runtime, but for typing
5576
+ * purposes we assume it's a valid `ReadT` value. Type-checking will enforce that.
5577
+ */
5578
+ applyValueToInputSignal<ReadT, WriteT>(node: InputSignalNode<ReadT, WriteT>, value: ReadT): void;
5579
+ }
5161
5580
 
5162
5581
  /** Function that can be used to transform incoming input values. */
5163
5582
  declare type InputTransformFunction = (value: any) => any;
@@ -5179,6 +5598,37 @@ declare interface InternalAfterNextRenderOptions {
5179
5598
  injector?: Injector;
5180
5599
  }
5181
5600
 
5601
+ /**
5602
+ * This enum is an exact copy of the `InjectFlags` enum above, but the difference is that this is a
5603
+ * const enum, so actual enum values would be inlined in generated code. The `InjectFlags` enum can
5604
+ * be turned into a const enum when ViewEngine is removed (see TODO at the `InjectFlags` enum
5605
+ * above). The benefit of inlining is that we can use these flags at the top level without affecting
5606
+ * tree-shaking (see "no-toplevel-property-access" tslint rule for more info).
5607
+ * Keep this enum in sync with `InjectFlags` enum above.
5608
+ */
5609
+ declare const enum InternalInjectFlags {
5610
+ /** Check self and check parent injector if needed */
5611
+ Default = 0,
5612
+ /**
5613
+ * Specifies that an injector should retrieve a dependency from any injector until reaching the
5614
+ * host element of the current component. (Only used with Element Injector)
5615
+ */
5616
+ Host = 1,
5617
+ /** Don't ascend to ancestors of the node requesting injection. */
5618
+ Self = 2,
5619
+ /** Skip the node that is requesting injection. */
5620
+ SkipSelf = 4,
5621
+ /** Inject `defaultValue` instead if token not found. */
5622
+ Optional = 8,
5623
+ /**
5624
+ * This token is being injected into a pipe.
5625
+ *
5626
+ * This flag is intentionally not in the public facing `InjectFlags` because it is only added by
5627
+ * the compiler and is not a developer applicable flag.
5628
+ */
5629
+ ForPipe = 16
5630
+ }
5631
+
5182
5632
  declare interface InternalNgModuleRef<T> extends NgModuleRef<T> {
5183
5633
  _bootstrapComponents: Type<any>[];
5184
5634
  }
@@ -5572,16 +6022,30 @@ declare enum LContainerFlags {
5572
6022
  *
5573
6023
  * This flag, once set, is never unset for the `LContainer`.
5574
6024
  */
5575
- HasTransplantedViews = 2,
5576
- /**
5577
- * Indicates that this LContainer has a view underneath it that needs to be refreshed during
5578
- * change detection.
5579
- */
5580
- HasChildViewsToRefresh = 4
6025
+ HasTransplantedViews = 2
5581
6026
  }
5582
6027
 
5583
6028
  declare type LegacyInputPartialMapping = string | [bindingPropertyName: string, classPropertyName: string, transformFunction?: Function];
5584
6029
 
6030
+ /**
6031
+ * Event listener configuration returned from `getListeners`.
6032
+ * @publicApi
6033
+ */
6034
+ declare interface Listener {
6035
+ /** Name of the event listener. */
6036
+ name: string;
6037
+ /** Element that the listener is bound to. */
6038
+ element: Element;
6039
+ /** Callback that is invoked when the event is triggered. */
6040
+ callback: (value: any) => any;
6041
+ /** Whether the listener is using event capturing. */
6042
+ useCapture: boolean;
6043
+ /**
6044
+ * Type of the listener (e.g. a native DOM event or a custom @Output).
6045
+ */
6046
+ type: 'dom' | 'output';
6047
+ }
6048
+
5585
6049
  /**
5586
6050
  * Provide this token to set the locale of your application.
5587
6051
  * It is used for i18n extraction, by i18n pipes (DatePipe, I18nPluralPipe, CurrencyPipe,
@@ -5936,6 +6400,8 @@ declare interface LViewEnvironment {
5936
6400
  inlineEffectRunner: FlushableEffectRunner | null;
5937
6401
  /** Container for after render hooks */
5938
6402
  afterRenderEventManager: ɵAfterRenderEventManager | null;
6403
+ /** Scheduler for change detection to notify when application state changes. */
6404
+ changeDetectionScheduler: ɵChangeDetectionScheduler | null;
5939
6405
  }
5940
6406
 
5941
6407
  /** Flags associated with an LView (saved in LView[FLAGS]) */
@@ -6624,6 +7090,39 @@ export declare interface NgZoneOptions {
6624
7090
  */
6625
7091
  export declare const NO_ERRORS_SCHEMA: SchemaMetadata;
6626
7092
 
7093
+ /**
7094
+ * Store the runtime input for all directives applied to a node.
7095
+ *
7096
+ * This allows efficiently setting the same input on a directive that
7097
+ * might apply to multiple directives.
7098
+ *
7099
+ * i+0: directive instance index
7100
+ * i+1: privateName
7101
+ * i+2: input flags
7102
+ *
7103
+ * e.g.
7104
+ * ```
7105
+ * {
7106
+ * "publicName": [0, 'change-minified', <bit-input-flags>]
7107
+ * }
7108
+ * ```
7109
+ */
7110
+ declare type NodeInputBindings = Record<string, (number | string | ɵɵInputFlags)[]>;
7111
+
7112
+ /**
7113
+ * Store the runtime output names for all the directives.
7114
+ *
7115
+ * i+0: directive instance index
7116
+ * i+1: privateName
7117
+ *
7118
+ * e.g.
7119
+ * ```
7120
+ * {
7121
+ * "publicName": [0, 'change-minified']
7122
+ * }
7123
+ */
7124
+ declare type NodeOutputBindings = Record<string, (number | string)[]>;
7125
+
6627
7126
  declare const NODES = "n";
6628
7127
 
6629
7128
  declare const NUM_ROOT_NODES = "r";
@@ -7086,30 +7585,6 @@ declare type ProcessProvidersFunction = (providers: Provider[]) => Provider[];
7086
7585
  */
7087
7586
  declare type ProjectionSlots = (ɵCssSelectorList | '*')[];
7088
7587
 
7089
- /**
7090
- * This mapping is necessary so we can set input properties and output listeners
7091
- * properly at runtime when property names are minified or aliased.
7092
- *
7093
- * Key: unminified / public input or output name
7094
- * Value: array containing minified / internal name and related directive index
7095
- *
7096
- * The value must be an array to support inputs and outputs with the same name
7097
- * on the same node.
7098
- */
7099
- declare type PropertyAliases = {
7100
- [key: string]: PropertyAliasValue;
7101
- };
7102
-
7103
- /**
7104
- * Store the runtime input or output names for all the directives.
7105
- *
7106
- * i+0: directive instance index
7107
- * i+1: privateName
7108
- *
7109
- * e.g. [0, 'change-minified']
7110
- */
7111
- declare type PropertyAliasValue = (number | string)[];
7112
-
7113
7588
  /**
7114
7589
  * Describes how the `Injector` should be configured.
7115
7590
  * @see ["Dependency Injection Guide"](guide/dependency-injection).
@@ -7902,6 +8377,8 @@ export declare interface RendererType2 {
7902
8377
  };
7903
8378
  }
7904
8379
 
8380
+ declare const REQUIRED_UNSET_VALUE: unique symbol;
8381
+
7905
8382
  /**
7906
8383
  * Lazily retrieves the reference value from a forwardRef.
7907
8384
  *
@@ -8248,6 +8725,11 @@ export declare interface SimpleChanges {
8248
8725
  [propName: string]: SimpleChange;
8249
8726
  }
8250
8727
 
8728
+ /**
8729
+ * Internal type for a single provider in a deep provider array.
8730
+ */
8731
+ declare type SingleProvider = TypeProvider | ValueProvider | ClassProvider | ConstructorProvider | ExistingProvider | FactoryProvider | StaticClassProvider;
8732
+
8251
8733
  /**
8252
8734
  * Type of the `SkipSelf` metadata.
8253
8735
  *
@@ -8972,12 +9454,12 @@ declare interface TNode {
8972
9454
  * Input data for all directives on this node. `null` means that there are no directives with
8973
9455
  * inputs on this node.
8974
9456
  */
8975
- inputs: PropertyAliases | null;
9457
+ inputs: NodeInputBindings | null;
8976
9458
  /**
8977
9459
  * Output data for all directives on this node. `null` means that there are no directives with
8978
9460
  * outputs on this node.
8979
9461
  */
8980
- outputs: PropertyAliases | null;
9462
+ outputs: NodeOutputBindings | null;
8981
9463
  /**
8982
9464
  * The TView attached to this node.
8983
9465
  *
@@ -10621,17 +11103,10 @@ export declare function ɵ_sanitizeUrl(url: string): string;
10621
11103
  * Delegates to an optional `AfterRenderCallbackHandler` for implementation.
10622
11104
  */
10623
11105
  export declare class ɵAfterRenderEventManager {
10624
- private renderDepth;
10625
- /**
10626
- * Mark the beginning of a render operation (i.e. CD cycle).
10627
- * Throws if called while executing callbacks.
10628
- */
10629
- begin(): void;
10630
11106
  /**
10631
- * Mark the end of a render operation. Callbacks will be
10632
- * executed if there are no more pending operations.
11107
+ * Executes callbacks. Returns `true` if any callbacks executed.
10633
11108
  */
10634
- end(): void;
11109
+ execute(): boolean;
10635
11110
  ngOnDestroy(): void;
10636
11111
  /** @nocollapse */
10637
11112
  static ɵprov: unknown;
@@ -10867,6 +11342,14 @@ export declare const enum ɵBypassType {
10867
11342
  Style = "Style"
10868
11343
  }
10869
11344
 
11345
+
11346
+ /**
11347
+ * Injectable that is notified when an `LView` is made aware of changes to application state.
11348
+ */
11349
+ export declare abstract class ɵChangeDetectionScheduler {
11350
+ abstract notify(): void;
11351
+ }
11352
+
10870
11353
  export declare function ɵclearResolutionOfComponentResourcesQueue(): Map<Type<any>, Component>;
10871
11354
 
10872
11355
  /**
@@ -10908,6 +11391,22 @@ export declare function ɵcompileNgModuleFactory<M>(injector: Injector, options:
10908
11391
 
10909
11392
  export declare function ɵcompilePipe(type: Type<any>, meta: Pipe): void;
10910
11393
 
11394
+ /**
11395
+ * Partial metadata for a given component instance.
11396
+ * This information might be useful for debugging purposes or tooling.
11397
+ * Currently the following fields are available:
11398
+ * - inputs
11399
+ * - outputs
11400
+ * - encapsulation
11401
+ * - changeDetection
11402
+ *
11403
+ * @publicApi
11404
+ */
11405
+ export declare interface ɵComponentDebugMetadata extends DirectiveDebugMetadata {
11406
+ encapsulation: ViewEncapsulation;
11407
+ changeDetection: ChangeDetectionStrategy;
11408
+ }
11409
+
10911
11410
  /**
10912
11411
  * Runtime link information for Components.
10913
11412
  *
@@ -11183,12 +11682,11 @@ export declare function ɵdevModeEqual(a: any, b: any): boolean;
11183
11682
  */
11184
11683
  export declare interface ɵDirectiveDef<T> {
11185
11684
  /**
11186
- * A dictionary mapping the inputs' minified property names to their public API names, which
11187
- * are their aliases if any, or their original unminified property names
11188
- * (as in `@Input('alias') propertyName: any;`).
11685
+ * A dictionary mapping the inputs' public name to their minified property names
11686
+ * (along with flags if there are any).
11189
11687
  */
11190
11688
  readonly inputs: {
11191
- [P in keyof T]: string;
11689
+ [P in keyof T]?: string | [minifiedName: string, flags: ɵɵInputFlags];
11192
11690
  };
11193
11691
  /**
11194
11692
  * A dictionary mapping the private names of inputs to their transformation functions.
@@ -11206,22 +11704,20 @@ export declare interface ɵDirectiveDef<T> {
11206
11704
  * used to do further processing after the `inputs` have been inverted.
11207
11705
  */
11208
11706
  readonly inputConfig: {
11209
- [classPropertyName: string]: string | [string, string, InputTransformFunction?];
11707
+ [P in keyof T]?: string | [ɵɵInputFlags, string, string?, InputTransformFunction?];
11210
11708
  };
11211
11709
  /**
11212
11710
  * @deprecated This is only here because `NgOnChanges` incorrectly uses declared name instead of
11213
11711
  * public or minified name.
11214
11712
  */
11215
- readonly declaredInputs: {
11216
- [P in keyof T]: string;
11217
- };
11713
+ readonly declaredInputs: Record<string, string>;
11218
11714
  /**
11219
11715
  * A dictionary mapping the outputs' minified property names to their public API names, which
11220
11716
  * are their aliases if any, or their original unminified property names
11221
11717
  * (as in `@Output('alias') propertyName: any;`).
11222
11718
  */
11223
11719
  readonly outputs: {
11224
- [P in keyof T]: string;
11720
+ [P in keyof T]?: string;
11225
11721
  };
11226
11722
  /**
11227
11723
  * Function to create and refresh content queries associated with a given directive.
@@ -11319,7 +11815,7 @@ export declare interface ɵDirectiveDef<T> {
11319
11815
  findHostDirectiveDefs: ((currentDef: ɵDirectiveDef<unknown>, matchedDefs: ɵDirectiveDef<unknown>[], hostDirectiveDefs: HostDirectiveDefs) => void) | null;
11320
11816
  /** Additional directives to be applied whenever the directive has been matched. */
11321
11817
  hostDirectives: HostDirectiveDef[] | null;
11322
- setInput: (<U extends T>(this: ɵDirectiveDef<U>, instance: U, value: any, publicName: string, privateName: string) => void) | null;
11818
+ setInput: (<U extends T>(this: ɵDirectiveDef<U>, instance: U, inputSignalNode: null | InputSignalNode<unknown, unknown>, value: any, publicName: string, privateName: string) => void) | null;
11323
11819
  }
11324
11820
 
11325
11821
  /**
@@ -11420,6 +11916,9 @@ export declare function ɵgetDeferBlocks(lView: LView, deferBlocks: ɵDeferBlock
11420
11916
  */
11421
11917
  export declare function ɵgetDirectives(node: Node): {}[];
11422
11918
 
11919
+
11920
+ export declare function ɵgetEnsureDirtyViewsAreAlwaysReachable(): boolean;
11921
+
11423
11922
  /**
11424
11923
  * Retrieves the host element of a component or directive instance.
11425
11924
  * The host element is the DOM element that matched the selector of the directive.
@@ -11499,6 +11998,13 @@ export declare function ɵgetUnknownPropertyStrictMode(): boolean;
11499
11998
 
11500
11999
  export declare const ɵglobal: any;
11501
12000
 
12001
+ /**
12002
+ * Default debug tools available under `window.ng`.
12003
+ */
12004
+ export declare type ɵGlobalDevModeUtils = {
12005
+ [GLOBAL_PUBLISH_EXPANDO_KEY]: typeof globalUtilsFunctions;
12006
+ };
12007
+
11502
12008
  /**
11503
12009
  * Injection token that configures the image optimized image functionality.
11504
12010
  * See {@link ImageConfig} for additional information about parameters that
@@ -11531,26 +12037,6 @@ export declare type ɵImageConfig = {
11531
12037
  disableImageLazyLoadWarning?: boolean;
11532
12038
  };
11533
12039
 
11534
- /**
11535
- * *Internal* service that keeps track of pending tasks happening in the system
11536
- * during the initial rendering. No tasks are tracked after an initial
11537
- * rendering.
11538
- *
11539
- * This information is needed to make sure that the serialization on the server
11540
- * is delayed until all tasks in the queue (such as an initial navigation or a
11541
- * pending HTTP request) are completed.
11542
- */
11543
- export declare class ɵInitialRenderPendingTasks implements OnDestroy {
11544
- private taskId;
11545
- private pendingTasks;
11546
- hasPendingTasks: BehaviorSubject<boolean>;
11547
- add(): number;
11548
- remove(taskId: number): void;
11549
- ngOnDestroy(): void;
11550
- static ɵfac: i0.ɵɵFactoryDeclaration<ɵInitialRenderPendingTasks, never>;
11551
- static ɵprov: i0.ɵɵInjectableDeclaration<ɵInitialRenderPendingTasks>;
11552
- }
11553
-
11554
12040
  /** Returns a ChangeDetectorRef (a.k.a. a ViewRef) */
11555
12041
  export declare function ɵinjectChangeDetectorRef(flags: InjectFlags): ChangeDetectorRef;
11556
12042
 
@@ -11579,116 +12065,10 @@ export declare interface ɵInjectorProfilerContext {
11579
12065
  token: Type<unknown> | null;
11580
12066
  }
11581
12067
 
11582
- /**
11583
- * Initializes an input with an initial value. If no explicit value
11584
- * is specified, Angular will use `undefined`.
11585
- *
11586
- * Consider using `input.required` for inputs that don't need an
11587
- * initial value.
11588
- *
11589
- * @usageNotes
11590
- * Initialize an input in your directive or component by declaring a
11591
- * class field and initializing it with the `input()` function.
11592
- *
11593
- * ```ts
11594
- * @Directive({..})
11595
- * export class MyDir {
11596
- * firstName = input<string>(); // string|undefined
11597
- * lastName = input.required<string>(); // string
11598
- * age = input(0); // number
11599
- * }
11600
- * ```
11601
- */
11602
- export declare const ɵinput: ɵInputFunction;
11603
-
11604
12068
  declare const ɵINPUT_SIGNAL_BRAND_READ_TYPE: unique symbol;
11605
12069
 
11606
12070
  export declare const ɵINPUT_SIGNAL_BRAND_WRITE_TYPE: unique symbol;
11607
12071
 
11608
- /**
11609
- * Type of the `input` function.
11610
- *
11611
- * The input function is a special function that also provides access to
11612
- * required inputs via the `.required` property.
11613
- */
11614
- export declare type ɵInputFunction = typeof ɵinputFunctionForApiGuard & {
11615
- required: typeof ɵinputFunctionRequiredForApiGuard;
11616
- };
11617
-
11618
- /**
11619
- * Initializes an input with an initial value. If no explicit value
11620
- * is specified, Angular will use `undefined`.
11621
- *
11622
- * Consider using `input.required` for inputs that don't need an
11623
- * initial value.
11624
- *
11625
- * @usageNotes
11626
- * Initialize an input in your directive or component by declaring a
11627
- * class field and initializing it with the `input()` function.
11628
- *
11629
- * ```ts
11630
- * @Directive({..})
11631
- * export class MyDir {
11632
- * firstName = input<string>(); // string|undefined
11633
- * lastName = input.required<string>(); // string
11634
- * age = input(0); // number
11635
- * }
11636
- * ```
11637
- */
11638
- export declare function ɵinputFunctionForApiGuard<ReadT>(): InputSignal<ReadT | undefined>;
11639
-
11640
- export declare function ɵinputFunctionForApiGuard<ReadT>(initialValue: ReadT, opts?: ɵInputOptionsWithoutTransform<ReadT>): InputSignal<ReadT>;
11641
-
11642
- export declare function ɵinputFunctionForApiGuard<ReadT, WriteT>(initialValue: ReadT, opts: ɵInputOptionsWithTransform<ReadT, WriteT>): InputSignal<ReadT, WriteT>;
11643
-
11644
- /**
11645
- * Initializes a required input. Users of your directive/component,
11646
- * need to bind to this input, otherwise they will see errors.
11647
- * *
11648
- * @usageNotes
11649
- * Initialize an input in your directive or component by declaring a
11650
- * class field and initializing it with the `input()` function.
11651
- *
11652
- * ```ts
11653
- * @Directive({..})
11654
- * export class MyDir {
11655
- * firstName = input<string>(); // string|undefined
11656
- * lastName = input.required<string>(); // string
11657
- * age = input(0); // number
11658
- * }
11659
- * ```
11660
- */
11661
- export declare function ɵinputFunctionRequiredForApiGuard<ReadT>(opts?: ɵInputOptionsWithoutTransform<ReadT>): InputSignal<ReadT>;
11662
-
11663
- export declare function ɵinputFunctionRequiredForApiGuard<ReadT, WriteT>(opts: ɵInputOptionsWithTransform<ReadT, WriteT>): InputSignal<ReadT, WriteT>;
11664
-
11665
- /**
11666
- * Options for signal inputs.
11667
- */
11668
- export declare interface ɵInputOptions<ReadT, WriteT> {
11669
- /** Optional public name for the input. By default, the class field name is used. */
11670
- alias?: string;
11671
- /**
11672
- * Optional transform that runs whenever a new value is bound. Can be used to
11673
- * transform the input value before the input is updated.
11674
- *
11675
- * The transform function can widen the type of the input. For example, consider
11676
- * an input for `disabled`. In practice, as the component author, you want to only
11677
- * deal with a boolean, but users may want to bind a string if they just use the
11678
- * attribute form to bind to the input via `<my-dir input>`. A transform can then
11679
- * handle such string values and convert them to `boolean`. See: {@link booleanAttribute}.
11680
- */
11681
- transform?: (v: WriteT) => ReadT;
11682
- }
11683
-
11684
- /** Signal input options without the transform option. */
11685
- export declare type ɵInputOptionsWithoutTransform<ReadT> = Omit<ɵInputOptions<ReadT, ReadT>, 'transform'> & {
11686
- transform?: undefined;
11687
- };
11688
-
11689
- /** Signal input options with the transform option required. */
11690
- export declare type ɵInputOptionsWithTransform<ReadT, WriteT> = Required<Pick<ɵInputOptions<ReadT, WriteT>, 'transform'>> & ɵInputOptions<ReadT, WriteT>;
11691
-
11692
12072
  /**
11693
12073
  * Register a callback to run once before any userspace `afterRender` or
11694
12074
  * `afterNextRender` callbacks.
@@ -11997,6 +12377,28 @@ export declare const ɵNOT_FOUND_CHECK_ONLY_ELEMENT_INJECTOR: {};
11997
12377
  */
11998
12378
  export declare function ɵpatchComponentDefWithScope<C>(componentDef: ɵComponentDef<C>, transitiveScopes: ɵNgModuleTransitiveScopes): void;
11999
12379
 
12380
+ /**
12381
+ * *Internal* service that keeps track of pending tasks happening in the system.
12382
+ *
12383
+ * This information is needed to make sure that the serialization on the server
12384
+ * is delayed until all tasks in the queue (such as an initial navigation or a
12385
+ * pending HTTP request) are completed.
12386
+ *
12387
+ * Pending tasks continue to contribute to the stableness of `ApplicationRef`
12388
+ * throughout the lifetime of the application.
12389
+ */
12390
+ export declare class ɵPendingTasks implements OnDestroy {
12391
+ private taskId;
12392
+ private pendingTasks;
12393
+ private get _hasPendingTasks();
12394
+ hasPendingTasks: BehaviorSubject<boolean>;
12395
+ add(): number;
12396
+ remove(taskId: number): void;
12397
+ ngOnDestroy(): void;
12398
+ static ɵfac: i0.ɵɵFactoryDeclaration<ɵPendingTasks, never>;
12399
+ static ɵprov: i0.ɵɵInjectableDeclaration<ɵPendingTasks>;
12400
+ }
12401
+
12000
12402
 
12001
12403
  /**
12002
12404
  * A guarded `performance.mark` for feature marking.
@@ -12103,18 +12505,30 @@ export declare const enum ɵProfilerEvent {
12103
12505
  }
12104
12506
 
12105
12507
  /**
12106
- * Publishes a collection of default debug tools onto`window.ng`.
12508
+ * An object that contains information about a provider that has been configured
12107
12509
  *
12108
- * These functions are available globally when Angular is in development
12109
- * mode and are automatically stripped away from prod mode is on.
12510
+ * TODO: rename to indicate that it is a debug structure eg. ProviderDebugInfo.
12110
12511
  */
12111
- export declare function ɵpublishDefaultGlobalUtils(): void;
12512
+ export declare interface ɵProviderRecord {
12513
+ /**
12514
+ * DI token that this provider is configuring
12515
+ */
12516
+ token: Type<unknown> | InjectionToken<unknown>;
12517
+ /**
12518
+ * Determines if provider is configured as view provider.
12519
+ */
12520
+ isViewProvider: boolean;
12521
+ /**
12522
+ * The raw provider associated with this ProviderRecord.
12523
+ */
12524
+ provider: SingleProvider;
12525
+ /**
12526
+ * The path of DI containers that were followed to import this provider
12527
+ */
12528
+ importPath?: Type<unknown>[];
12529
+ }
12112
12530
 
12113
- /**
12114
- * Publishes the given function to `window.ng` so that it can be
12115
- * used from the browser console when an application is not in production.
12116
- */
12117
- export declare function ɵpublishGlobalUtil(name: string, fn: Function): void;
12531
+ export declare function ɵprovideZonelessChangeDetection(): EnvironmentProviders;
12118
12532
 
12119
12533
  export declare class ɵReflectionCapabilities implements PlatformReflectionCapabilities {
12120
12534
  private _reflect;
@@ -12319,7 +12733,6 @@ export declare class ɵRuntimeError<T extends number = ɵRuntimeErrorCode> exten
12319
12733
  export declare const enum ɵRuntimeErrorCode {
12320
12734
  EXPRESSION_CHANGED_AFTER_CHECKED = -100,
12321
12735
  RECURSIVE_APPLICATION_REF_TICK = 101,
12322
- RECURSIVE_APPLICATION_RENDER = 102,
12323
12736
  INFINITE_CHANGE_DETECTION = 103,
12324
12737
  CYCLIC_DI_DEPENDENCY = -200,
12325
12738
  PROVIDER_NOT_FOUND = -201,
@@ -12382,6 +12795,7 @@ export declare const enum ɵRuntimeErrorCode {
12382
12795
  VIEW_ALREADY_DESTROYED = 911,
12383
12796
  COMPONENT_ID_COLLISION = -912,
12384
12797
  IMAGE_PERFORMANCE_WARNING = -913,
12798
+ REQUIRED_INPUT_NO_VALUE = -950,
12385
12799
  RUNTIME_DEPS_INVALID_IMPORTED_TYPE = 1000,
12386
12800
  RUNTIME_DEPS_ORPHAN_COMPONENT = 1001
12387
12801
  }
@@ -12488,6 +12902,8 @@ export declare function ɵsetCurrentInjector(injector: Injector | null | undefin
12488
12902
  */
12489
12903
  export declare function ɵsetDocument(document: Document | undefined): void;
12490
12904
 
12905
+ export declare function ɵsetEnsureDirtyViewsAreAlwaysReachable(v: boolean): void;
12906
+
12491
12907
  export declare function ɵsetInjectorProfilerContext(context: ɵInjectorProfilerContext): ɵInjectorProfilerContext;
12492
12908
 
12493
12909
 
@@ -12904,7 +13320,7 @@ export declare class ɵZoneAwareQueueingScheduler implements ɵEffectScheduler,
12904
13320
  *
12905
13321
  * @codeGenApi
12906
13322
  */
12907
- export declare function ɵɵadvance(delta: number): void;
13323
+ export declare function ɵɵadvance(delta?: number): void;
12908
13324
 
12909
13325
  /**
12910
13326
  * Updates the value of or removes a bound attribute on an Element.
@@ -14295,6 +14711,13 @@ export declare interface ɵɵInjectorDef<T> {
14295
14711
  imports: (InjectorType<any> | InjectorTypeWithProviders<any>)[];
14296
14712
  }
14297
14713
 
14714
+ /** Flags describing an input for a directive. */
14715
+ export declare enum ɵɵInputFlags {
14716
+ None = 0,
14717
+ SignalBased = 1,
14718
+ HasDecoratorInputTransform = 2
14719
+ }
14720
+
14298
14721
  /**
14299
14722
  * Decorates the directive definition with support for input transform functions.
14300
14723
  *
@@ -14303,7 +14726,7 @@ export declare interface ɵɵInjectorDef<T> {
14303
14726
  *
14304
14727
  * @codeGenApi
14305
14728
  */
14306
- export declare function ɵɵInputTransformsFeature(definition: ɵDirectiveDef<unknown>): void;
14729
+ export declare function ɵɵInputTransformsFeature<T>(definition: ɵDirectiveDef<T>): void;
14307
14730
 
14308
14731
  /**
14309
14732
  * Throws an error indicating that a factory function could not be generated by the compiler for a
@@ -15286,10 +15709,12 @@ export declare function ɵɵrepeater(collection: Iterable<unknown> | undefined |
15286
15709
  * @param emptyTemplateFn Reference to the template function of the empty block.
15287
15710
  * @param emptyDecls The number of nodes, local refs, and pipes for the empty block.
15288
15711
  * @param emptyVars The number of bindings for the empty block.
15712
+ * @param emptyTagName The name of the empty block container element, if applicable
15713
+ * @param emptyAttrsIndex Index of the empty block template attributes in the `consts` array.
15289
15714
  *
15290
15715
  * @codeGenApi
15291
15716
  */
15292
- export declare function ɵɵrepeaterCreate(index: number, templateFn: ComponentTemplate<unknown>, decls: number, vars: number, tagName: string | null, attrsIndex: number | null, trackByFn: TrackByFunction<unknown>, trackByUsesComponentInstance?: boolean, emptyTemplateFn?: ComponentTemplate<unknown>, emptyDecls?: number, emptyVars?: number): void;
15717
+ export declare function ɵɵrepeaterCreate(index: number, templateFn: ComponentTemplate<unknown>, decls: number, vars: number, tagName: string | null, attrsIndex: number | null, trackByFn: TrackByFunction<unknown>, trackByUsesComponentInstance?: boolean, emptyTemplateFn?: ComponentTemplate<unknown>, emptyDecls?: number, emptyVars?: number, emptyTagName?: string | null, emptyAttrsIndex?: number | null): void;
15293
15718
 
15294
15719
  /**
15295
15720
  * A built-in trackBy function used for situations where users specified collection item reference