@angular/core 17.1.0-next.5 → 17.1.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 (84) 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 +21 -5
  4. package/esm2022/src/authoring/input.mjs +12 -5
  5. package/esm2022/src/authoring/input_signal.mjs +28 -1
  6. package/esm2022/src/authoring/input_signal_node.mjs +22 -0
  7. package/esm2022/src/authoring.mjs +1 -4
  8. package/esm2022/src/change_detection/scheduling/zoneless_scheduling_impl.mjs +56 -0
  9. package/esm2022/src/compiler/compiler_facade_interface.mjs +1 -1
  10. package/esm2022/src/core.mjs +2 -2
  11. package/esm2022/src/core_private_export.mjs +2 -1
  12. package/esm2022/src/core_reactivity_export_internal.mjs +2 -2
  13. package/esm2022/src/core_render3_private_export.mjs +2 -2
  14. package/esm2022/src/defer/dom_triggers.mjs +1 -5
  15. package/esm2022/src/defer/interfaces.mjs +3 -2
  16. package/esm2022/src/di/inject_switch.mjs +2 -3
  17. package/esm2022/src/di/r3_injector.mjs +8 -6
  18. package/esm2022/src/errors.mjs +1 -1
  19. package/esm2022/src/hydration/utils.mjs +2 -2
  20. package/esm2022/src/hydration/views.mjs +2 -2
  21. package/esm2022/src/linker/view_container_ref.mjs +2 -2
  22. package/esm2022/src/metadata/directives.mjs +1 -1
  23. package/esm2022/src/render3/after_render_hooks.mjs +15 -33
  24. package/esm2022/src/render3/apply_value_input_field.mjs +16 -0
  25. package/esm2022/src/render3/collect_native_nodes.mjs +2 -3
  26. package/esm2022/src/render3/component_ref.mjs +13 -6
  27. package/esm2022/src/render3/debug/injector_profiler.mjs +1 -1
  28. package/esm2022/src/render3/definition.mjs +27 -68
  29. package/esm2022/src/render3/errors_di.mjs +4 -3
  30. package/esm2022/src/render3/features/host_directives_feature.mjs +2 -3
  31. package/esm2022/src/render3/features/inherit_definition_feature.mjs +31 -9
  32. package/esm2022/src/render3/features/input_transforms_feature.mjs +4 -5
  33. package/esm2022/src/render3/features/ng_onchanges_feature.mjs +4 -3
  34. package/esm2022/src/render3/index.mjs +2 -3
  35. package/esm2022/src/render3/instructions/advance.mjs +2 -2
  36. package/esm2022/src/render3/instructions/all.mjs +3 -2
  37. package/esm2022/src/render3/instructions/change_detection.mjs +1 -6
  38. package/esm2022/src/render3/instructions/listener.mjs +1 -1
  39. package/esm2022/src/render3/instructions/mark_view_dirty.mjs +2 -2
  40. package/esm2022/src/render3/instructions/queries.mjs +98 -0
  41. package/esm2022/src/render3/instructions/shared.mjs +61 -58
  42. package/esm2022/src/render3/instructions/write_to_directive_input.mjs +43 -0
  43. package/esm2022/src/render3/interfaces/container.mjs +1 -6
  44. package/esm2022/src/render3/interfaces/definition.mjs +8 -2
  45. package/esm2022/src/render3/interfaces/node.mjs +1 -1
  46. package/esm2022/src/render3/interfaces/view.mjs +1 -1
  47. package/esm2022/src/render3/jit/environment.mjs +3 -1
  48. package/esm2022/src/render3/node_manipulation.mjs +8 -8
  49. package/esm2022/src/render3/query.mjs +11 -98
  50. package/esm2022/src/render3/reactivity/effect.mjs +22 -42
  51. package/esm2022/src/render3/reactivity/signal.mjs +1 -1
  52. package/esm2022/src/render3/styling/style_binding_list.mjs +4 -4
  53. package/esm2022/src/render3/util/discovery_utils.mjs +37 -5
  54. package/esm2022/src/render3/util/global_utils.mjs +28 -28
  55. package/esm2022/src/render3/util/injector_discovery_utils.mjs +1 -1
  56. package/esm2022/src/render3/util/injector_utils.mjs +6 -5
  57. package/esm2022/src/render3/util/view_traversal_utils.mjs +3 -12
  58. package/esm2022/src/render3/util/view_utils.mjs +19 -15
  59. package/esm2022/src/testability/testability.mjs +3 -15
  60. package/esm2022/src/util/empty.mjs +1 -1
  61. package/esm2022/src/version.mjs +1 -1
  62. package/esm2022/testing/src/component_fixture.mjs +65 -61
  63. package/esm2022/testing/src/logger.mjs +3 -3
  64. package/esm2022/testing/src/test_bed.mjs +7 -6
  65. package/fesm2022/core.mjs +10537 -10438
  66. package/fesm2022/core.mjs.map +1 -1
  67. package/fesm2022/primitives/signals.mjs +2 -10
  68. package/fesm2022/primitives/signals.mjs.map +1 -1
  69. package/fesm2022/rxjs-interop.mjs +1 -1
  70. package/fesm2022/testing.mjs +70 -65
  71. package/fesm2022/testing.mjs.map +1 -1
  72. package/index.d.ts +644 -262
  73. package/package.json +1 -1
  74. package/primitives/signals/index.d.ts +3 -4
  75. package/rxjs-interop/index.d.ts +1 -1
  76. package/schematics/migrations/block-template-entities/bundle.js +320 -281
  77. package/schematics/migrations/block-template-entities/bundle.js.map +4 -4
  78. package/schematics/migrations/compiler-options/bundle.js +13 -13
  79. package/schematics/migrations/transfer-state/bundle.js +13 -13
  80. package/schematics/ng-generate/control-flow-migration/bundle.js +330 -291
  81. package/schematics/ng-generate/control-flow-migration/bundle.js.map +4 -4
  82. package/schematics/ng-generate/standalone-migration/bundle.js +1296 -947
  83. package/schematics/ng-generate/standalone-migration/bundle.js.map +4 -4
  84. package/testing/index.d.ts +6 -2
package/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license Angular v17.1.0-next.5
2
+ * @license Angular v17.1.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,6 +643,7 @@ export declare class ApplicationRef {
642
643
  private _destroyed;
643
644
  private _destroyListeners;
644
645
  private readonly internalErrorHandler;
646
+ private readonly afterRenderEffectManager;
645
647
  /**
646
648
  * Indicates whether this instance was destroyed.
647
649
  */
@@ -787,6 +789,18 @@ export declare class ApplicationRef {
787
789
  static ɵprov: i0.ɵɵInjectableDeclaration<ApplicationRef>;
788
790
  }
789
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
+
790
804
  /**
791
805
  * @publicApi
792
806
  */
@@ -3040,6 +3054,18 @@ export declare interface Directive {
3040
3054
  */
3041
3055
  export declare const Directive: DirectiveDecorator;
3042
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
+
3043
3069
  /**
3044
3070
  * Type of the Directive decorator / constructor function.
3045
3071
  * @publicApi
@@ -3151,63 +3177,8 @@ declare interface DirectiveDefinition<T> {
3151
3177
  selectors?: ɵCssSelectorList;
3152
3178
  /**
3153
3179
  * A map of input names.
3154
- *
3155
- * The format is in: `{[actualPropertyName: string]:(string|[string, string, Function])}`.
3156
- *
3157
- * Given:
3158
- * ```
3159
- * class MyComponent {
3160
- * @Input()
3161
- * publicInput1: string;
3162
- *
3163
- * @Input('publicInput2')
3164
- * declaredInput2: string;
3165
- *
3166
- * @Input({transform: (value: boolean) => value ? 1 : 0})
3167
- * transformedInput3: number;
3168
- * }
3169
- * ```
3170
- *
3171
- * is described as:
3172
- * ```
3173
- * {
3174
- * publicInput1: 'publicInput1',
3175
- * declaredInput2: ['declaredInput2', 'publicInput2'],
3176
- * transformedInput3: [
3177
- * 'transformedInput3',
3178
- * 'transformedInput3',
3179
- * (value: boolean) => value ? 1 : 0
3180
- * ]
3181
- * }
3182
- * ```
3183
- *
3184
- * Which the minifier may translate to:
3185
- * ```
3186
- * {
3187
- * minifiedPublicInput1: 'publicInput1',
3188
- * minifiedDeclaredInput2: [ 'publicInput2', 'declaredInput2'],
3189
- * minifiedTransformedInput3: [
3190
- * 'transformedInput3',
3191
- * 'transformedInput3',
3192
- * (value: boolean) => value ? 1 : 0
3193
- * ]
3194
- * }
3195
- * ```
3196
- *
3197
- * This allows the render to re-construct the minified, public, and declared names
3198
- * of properties.
3199
- *
3200
- * NOTE:
3201
- * - Because declared and public name are usually same we only generate the array
3202
- * `['declared', 'public']` format when they differ.
3203
- * - The reason why this API and `outputs` API is not the same is that `NgOnChanges` has
3204
- * inconsistent behavior in that it uses declared names rather than minified or public. For
3205
- * this reason `NgOnChanges` will be deprecated and removed in future version and this
3206
- * API will be simplified to be consistent with `output`.
3207
3180
  */
3208
- inputs?: {
3209
- [P in keyof T]?: string | [string, string, InputTransformFunction?];
3210
- };
3181
+ inputs?: DirectiveInputs<T>;
3211
3182
  /**
3212
3183
  * A map of output names.
3213
3184
  *
@@ -3303,6 +3274,75 @@ declare type DirectiveDefList = (ɵDirectiveDef<any> | ɵComponentDef<any>)[];
3303
3274
  */
3304
3275
  declare type DirectiveDefListOrFactory = (() => DirectiveDefList) | DirectiveDefList;
3305
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
+
3306
3346
  declare const DISCONNECTED_NODES = "d";
3307
3347
 
3308
3348
  /**
@@ -3846,16 +3886,6 @@ export declare interface FactorySansProvider {
3846
3886
 
3847
3887
  declare const FLAGS = 2;
3848
3888
 
3849
- /**
3850
- * Interface to an `EffectScheduler` capable of running scheduled effects synchronously.
3851
- */
3852
- declare interface FlushableEffectRunner {
3853
- /**
3854
- * Run any scheduled effects.
3855
- */
3856
- flush(): void;
3857
- }
3858
-
3859
3889
  /**
3860
3890
  * Allows to refer to references which are not yet defined.
3861
3891
  *
@@ -3910,6 +3940,49 @@ export declare interface ForwardRefFn {
3910
3940
  (): any;
3911
3941
  }
3912
3942
 
3943
+ /**
3944
+ * Retrieves the component instance associated with a given DOM element.
3945
+ *
3946
+ * @usageNotes
3947
+ * Given the following DOM structure:
3948
+ *
3949
+ * ```html
3950
+ * <app-root>
3951
+ * <div>
3952
+ * <child-comp></child-comp>
3953
+ * </div>
3954
+ * </app-root>
3955
+ * ```
3956
+ *
3957
+ * Calling `getComponent` on `<child-comp>` will return the instance of `ChildComponent`
3958
+ * associated with this DOM element.
3959
+ *
3960
+ * Calling the function on `<app-root>` will return the `MyApp` instance.
3961
+ *
3962
+ *
3963
+ * @param element DOM element from which the component should be retrieved.
3964
+ * @returns Component instance associated with the element or `null` if there
3965
+ * is no component associated with it.
3966
+ *
3967
+ * @publicApi
3968
+ * @globalApi ng
3969
+ */
3970
+ declare function getComponent<T>(element: Element): T | null;
3971
+
3972
+ /**
3973
+ * If inside an embedded view (e.g. `*ngIf` or `*ngFor`), retrieves the context of the embedded
3974
+ * view that the element is part of. Otherwise retrieves the instance of the component whose view
3975
+ * owns the element (in this case, the result is the same as calling `getOwningComponent`).
3976
+ *
3977
+ * @param element Element for which to get the surrounding component instance.
3978
+ * @returns Instance of the component that is around the element or null if the element isn't
3979
+ * inside any component.
3980
+ *
3981
+ * @publicApi
3982
+ * @globalApi ng
3983
+ */
3984
+ declare function getContext<T extends {}>(element: Element): T | null;
3985
+
3913
3986
  /**
3914
3987
  * @publicApi
3915
3988
  */
@@ -3917,6 +3990,115 @@ declare function getDebugNode(nativeNode: any): DebugNode | null;
3917
3990
  export { getDebugNode }
3918
3991
  export { getDebugNode as ɵgetDebugNode }
3919
3992
 
3993
+ /**
3994
+ * Discovers the dependencies of an injectable instance. Provides DI information about each
3995
+ * dependency that the injectable was instantiated with, including where they were provided from.
3996
+ *
3997
+ * @param injector An injector instance
3998
+ * @param token a DI token that was constructed by the given injector instance
3999
+ * @returns an object that contains the created instance of token as well as all of the dependencies
4000
+ * that it was instantiated with OR undefined if the token was not created within the given
4001
+ * injector.
4002
+ */
4003
+ declare function getDependenciesFromInjectable<T>(injector: Injector, token: Type<T> | InjectionToken<T>): {
4004
+ instance: T;
4005
+ dependencies: Omit<InjectedService, 'injectedIn'>[];
4006
+ } | undefined;
4007
+
4008
+ /**
4009
+ * Returns the debug (partial) metadata for a particular directive or component instance.
4010
+ * The function accepts an instance of a directive or component and returns the corresponding
4011
+ * metadata.
4012
+ *
4013
+ * @param directiveOrComponentInstance Instance of a directive or component
4014
+ * @returns metadata of the passed directive or component
4015
+ *
4016
+ * @publicApi
4017
+ * @globalApi ng
4018
+ */
4019
+ declare function getDirectiveMetadata(directiveOrComponentInstance: any): ɵComponentDebugMetadata | DirectiveDebugMetadata | null;
4020
+
4021
+ /**
4022
+ * Retrieves an `Injector` associated with an element, component or directive instance.
4023
+ *
4024
+ * @param elementOrDir DOM element, component or directive instance for which to
4025
+ * retrieve the injector.
4026
+ * @returns Injector associated with the element, component or directive instance.
4027
+ *
4028
+ * @publicApi
4029
+ * @globalApi ng
4030
+ */
4031
+ declare function getInjector(elementOrDir: Element | {}): Injector;
4032
+
4033
+ /**
4034
+ *
4035
+ * Given an injector, this function will return
4036
+ * an object containing the type and source of the injector.
4037
+ *
4038
+ * | | type | source |
4039
+ * |--------------|-------------|-------------------------------------------------------------|
4040
+ * | NodeInjector | element | DOM element that created this injector |
4041
+ * | R3Injector | environment | `injector.source` |
4042
+ * | NullInjector | null | null |
4043
+ *
4044
+ * @param injector the Injector to get metadata for
4045
+ * @returns an object containing the type and source of the given injector. If the injector metadata
4046
+ * cannot be determined, returns null.
4047
+ */
4048
+ declare function getInjectorMetadata(injector: Injector): {
4049
+ type: 'element';
4050
+ source: RElement;
4051
+ } | {
4052
+ type: 'environment';
4053
+ source: string | null;
4054
+ } | {
4055
+ type: 'null';
4056
+ source: null;
4057
+ } | null;
4058
+
4059
+ /**
4060
+ * Gets the providers configured on an injector.
4061
+ *
4062
+ * @param injector the injector to lookup the providers of
4063
+ * @returns ProviderRecord[] an array of objects representing the providers of the given injector
4064
+ */
4065
+ declare function getInjectorProviders(injector: Injector): ɵProviderRecord[];
4066
+
4067
+ declare function getInjectorResolutionPath(injector: Injector): Injector[];
4068
+
4069
+ /**
4070
+ * Retrieves a list of event listeners associated with a DOM element. The list does include host
4071
+ * listeners, but it does not include event listeners defined outside of the Angular context
4072
+ * (e.g. through `addEventListener`).
4073
+ *
4074
+ * @usageNotes
4075
+ * Given the following DOM structure:
4076
+ *
4077
+ * ```html
4078
+ * <app-root>
4079
+ * <div (click)="doSomething()"></div>
4080
+ * </app-root>
4081
+ * ```
4082
+ *
4083
+ * Calling `getListeners` on `<div>` will return an object that looks as follows:
4084
+ *
4085
+ * ```ts
4086
+ * {
4087
+ * name: 'click',
4088
+ * element: <div>,
4089
+ * callback: () => doSomething(),
4090
+ * useCapture: false
4091
+ * }
4092
+ * ```
4093
+ *
4094
+ * @param element Element for which the DOM listeners should be retrieved.
4095
+ * @returns Array of event listeners on the DOM element.
4096
+ *
4097
+ * @publicApi
4098
+ * @globalApi ng
4099
+ */
4100
+ declare function getListeners(element: Element): Listener[];
4101
+
3920
4102
  /**
3921
4103
  * Returns the NgModuleFactory with the given id (specified using [@NgModule.id
3922
4104
  * field](api/core/NgModule#id)), if it exists and has been loaded. Factories for NgModules that do
@@ -3934,6 +4116,23 @@ export declare function getModuleFactory(id: string): NgModuleFactory<any>;
3934
4116
  */
3935
4117
  export declare function getNgModuleById<T>(id: string): Type<T>;
3936
4118
 
4119
+ /**
4120
+ * Retrieves the component instance whose view contains the DOM element.
4121
+ *
4122
+ * For example, if `<child-comp>` is used in the template of `<app-comp>`
4123
+ * (i.e. a `ViewChild` of `<app-comp>`), calling `getOwningComponent` on `<child-comp>`
4124
+ * would return `<app-comp>`.
4125
+ *
4126
+ * @param elementOrDir DOM element, component or directive instance
4127
+ * for which to retrieve the root components.
4128
+ * @returns Component instance whose view owns the DOM element or null if the element is not
4129
+ * part of a component view.
4130
+ *
4131
+ * @publicApi
4132
+ * @globalApi ng
4133
+ */
4134
+ declare function getOwningComponent<T>(elementOrDir: Element | {}): T | null;
4135
+
3937
4136
  /**
3938
4137
  * Returns the current platform.
3939
4138
  *
@@ -3941,6 +4140,19 @@ export declare function getNgModuleById<T>(id: string): Type<T>;
3941
4140
  */
3942
4141
  export declare function getPlatform(): PlatformRef | null;
3943
4142
 
4143
+ /**
4144
+ * Retrieves all root components associated with a DOM element, directive or component instance.
4145
+ * Root components are those which have been bootstrapped by Angular.
4146
+ *
4147
+ * @param elementOrDir DOM element, component or directive instance
4148
+ * for which to retrieve the root components.
4149
+ * @returns Root components associated with the target object.
4150
+ *
4151
+ * @publicApi
4152
+ * @globalApi ng
4153
+ */
4154
+ declare function getRootComponents(elementOrDir: Element | {}): {}[];
4155
+
3944
4156
  /**
3945
4157
  * Adapter interface for retrieving the `Testability` service associated for a
3946
4158
  * particular context.
@@ -3952,6 +4164,12 @@ export declare interface GetTestability {
3952
4164
  findTestabilityInTree(registry: TestabilityRegistry, elem: any, findInAncestors: boolean): Testability | null;
3953
4165
  }
3954
4166
 
4167
+ /**
4168
+ * This value reflects the property on the window where the dev
4169
+ * tools are patched (window.ng).
4170
+ * */
4171
+ declare const GLOBAL_PUBLISH_EXPANDO_KEY = "ng";
4172
+
3955
4173
  /**
3956
4174
  * The goal here is to make sure that the browser DOM API is the Renderer.
3957
4175
  * We do this by defining a subset of DOM API to be the renderer and then
@@ -3964,6 +4182,29 @@ declare type GlobalTargetName = 'document' | 'window' | 'body';
3964
4182
 
3965
4183
  declare type GlobalTargetResolver = (element: any) => EventTarget;
3966
4184
 
4185
+ declare const globalUtilsFunctions: {
4186
+ /**
4187
+ * Warning: functions that start with `ɵ` are considered *INTERNAL* and should not be relied upon
4188
+ * in application's code. The contract of those functions might be changed in any release and/or a
4189
+ * function can be removed completely.
4190
+ */
4191
+ ɵgetDependenciesFromInjectable: typeof getDependenciesFromInjectable;
4192
+ ɵgetInjectorProviders: typeof getInjectorProviders;
4193
+ ɵgetInjectorResolutionPath: typeof getInjectorResolutionPath;
4194
+ ɵgetInjectorMetadata: typeof getInjectorMetadata;
4195
+ ɵsetProfiler: (profiler: ɵProfiler | null) => void;
4196
+ getDirectiveMetadata: typeof getDirectiveMetadata;
4197
+ getComponent: typeof getComponent;
4198
+ getContext: typeof getContext;
4199
+ getListeners: typeof getListeners;
4200
+ getOwningComponent: typeof getOwningComponent;
4201
+ getHostElement: typeof ɵgetHostElement;
4202
+ getInjector: typeof getInjector;
4203
+ getRootComponents: typeof getRootComponents;
4204
+ getDirectives: typeof ɵgetDirectives;
4205
+ applyChanges: typeof applyChanges;
4206
+ };
4207
+
3967
4208
  /**
3968
4209
  * Array of hooks that should be executed for a view and their directive indices.
3969
4210
  *
@@ -4621,11 +4862,12 @@ declare type InitialInputData = (InitialInputs | null)[];
4621
4862
  *
4622
4863
  * i+0: attribute name
4623
4864
  * i+1: minified/internal input name
4624
- * i+2: initial value
4865
+ * i+2: input flags
4866
+ * i+3: initial value
4625
4867
  *
4626
4868
  * e.g. ['role-min', 'minified-input', 'button']
4627
4869
  */
4628
- declare type InitialInputs = string[];
4870
+ declare type InitialInputs = (string | ɵɵInputFlags)[];
4629
4871
 
4630
4872
  /**
4631
4873
  * Type of the Inject metadata.
@@ -4816,6 +5058,36 @@ export declare interface InjectDecorator {
4816
5058
  new (token: any): Inject;
4817
5059
  }
4818
5060
 
5061
+ /**
5062
+ * An object that contains information a service that has been injected within an
5063
+ * InjectorProfilerContext
5064
+ */
5065
+ declare interface InjectedService {
5066
+ /**
5067
+ * DI token of the Service that is injected
5068
+ */
5069
+ token?: Type<unknown> | InjectionToken<unknown>;
5070
+ /**
5071
+ * Value of the injected service
5072
+ */
5073
+ value: unknown;
5074
+ /**
5075
+ * Flags that this service was injected with
5076
+ */
5077
+ flags?: InternalInjectFlags | InjectFlags | InjectOptions;
5078
+ /**
5079
+ * Injector that this service was provided in.
5080
+ */
5081
+ providedIn?: Injector;
5082
+ /**
5083
+ * In NodeInjectors, the LView and TNode that serviced this injection.
5084
+ */
5085
+ injectedIn?: {
5086
+ lView: LView;
5087
+ tNode: TNode;
5088
+ };
5089
+ }
5090
+
4819
5091
  /**
4820
5092
  * Injection flags for DI.
4821
5093
  *
@@ -5087,6 +5359,33 @@ export declare interface Input {
5087
5359
  */
5088
5360
  export declare const Input: InputDecorator;
5089
5361
 
5362
+ /**
5363
+ * The `input` function allows declaration of inputs in directives and
5364
+ * components.
5365
+ *
5366
+ * Initializes an input with an initial value. If no explicit value
5367
+ * is specified, Angular will use `undefined`.
5368
+ *
5369
+ * Consider using `input.required` for inputs that don't need an
5370
+ * initial value.
5371
+ *
5372
+ * @usageNotes
5373
+ * Initialize an input in your directive or component by declaring a
5374
+ * class field and initializing it with the `input()` function.
5375
+ *
5376
+ * ```ts
5377
+ * @Directive({..})
5378
+ * export class MyDir {
5379
+ * firstName = input<string>(); // string|undefined
5380
+ * lastName = input.required<string>(); // string
5381
+ * age = input(0); // number
5382
+ * }
5383
+ * ```
5384
+ *
5385
+ * @developerPreview
5386
+ */
5387
+ export declare const input: InputFunction;
5388
+
5090
5389
  /**
5091
5390
  * @publicApi
5092
5391
  */
@@ -5146,17 +5445,128 @@ export declare interface InputDecorator {
5146
5445
  new (arg?: string | Input): any;
5147
5446
  }
5148
5447
 
5448
+ /**
5449
+ * The `input` function allows declaration of inputs in directives and
5450
+ * components.
5451
+ *
5452
+ * The function exposes an API for also declaring required inputs via the
5453
+ * `input.required` function.
5454
+ *
5455
+ * @usageNotes
5456
+ * Initialize an input in your directive or component by declaring a
5457
+ * class field and initializing it with the `input()` or `input.required()`
5458
+ * function.
5459
+ *
5460
+ * ```ts
5461
+ * @Directive({..})
5462
+ * export class MyDir {
5463
+ * firstName = input<string>(); // string|undefined
5464
+ * lastName = input.required<string>(); // string
5465
+ * age = input(0); // number
5466
+ * }
5467
+ * ```
5468
+ *
5469
+ * @developerPreview
5470
+ */
5471
+ export declare interface InputFunction {
5472
+ /**
5473
+ * Initializes an input with an initial value. If no explicit value
5474
+ * is specified, Angular will use `undefined`.
5475
+ *
5476
+ * Consider using `input.required` for inputs that don't need an
5477
+ * initial value.
5478
+ *
5479
+ * @developerPreview
5480
+ */
5481
+ <ReadT>(): InputSignal<ReadT | undefined>;
5482
+ <ReadT>(initialValue: ReadT, opts?: InputOptionsWithoutTransform<ReadT>): InputSignal<ReadT>;
5483
+ <ReadT, WriteT>(initialValue: ReadT, opts: InputOptionsWithTransform<ReadT, WriteT>): InputSignal<ReadT, WriteT>;
5484
+ /**
5485
+ * Initializes a required input.
5486
+ *
5487
+ * Users of your directive/component need to bind to this
5488
+ * input. If unset, a compile time error will be reported.
5489
+ *
5490
+ * @developerPreview
5491
+ */
5492
+ required: {
5493
+ <ReadT>(opts?: InputOptionsWithoutTransform<ReadT>): InputSignal<ReadT>;
5494
+ <ReadT, WriteT>(opts: InputOptionsWithTransform<ReadT, WriteT>): InputSignal<ReadT, WriteT>;
5495
+ };
5496
+ }
5497
+
5498
+ /**
5499
+ * @developerPreview
5500
+ *
5501
+ * Options for signal inputs.
5502
+ */
5503
+ export declare interface InputOptions<ReadT, WriteT> {
5504
+ /** Optional public name for the input. By default, the class field name is used. */
5505
+ alias?: string;
5506
+ /**
5507
+ * Optional transform that runs whenever a new value is bound. Can be used to
5508
+ * transform the input value before the input is updated.
5509
+ *
5510
+ * The transform function can widen the type of the input. For example, consider
5511
+ * an input for `disabled`. In practice, as the component author, you want to only
5512
+ * deal with a boolean, but users may want to bind a string if they just use the
5513
+ * attribute form to bind to the input via `<my-dir input>`. A transform can then
5514
+ * handle such string values and convert them to `boolean`. See: {@link booleanAttribute}.
5515
+ */
5516
+ transform?: (v: WriteT) => ReadT;
5517
+ }
5518
+
5519
+ /**
5520
+ * Signal input options without the transform option.
5521
+ *
5522
+ * @developerPreview
5523
+ */
5524
+ export declare type InputOptionsWithoutTransform<ReadT> = Omit<InputOptions<ReadT, ReadT>, 'transform'> & {
5525
+ transform?: undefined;
5526
+ };
5527
+
5528
+ /**
5529
+ * Signal input options with the transform option required.
5530
+ *
5531
+ * @developerPreview
5532
+ */
5533
+ export declare type InputOptionsWithTransform<ReadT, WriteT> = Required<Pick<InputOptions<ReadT, WriteT>, 'transform'>> & InputOptions<ReadT, WriteT>;
5534
+
5149
5535
  /**
5150
5536
  * `InputSignal` is represents a special `Signal` for a directive/component input.
5151
5537
  *
5152
5538
  * An input signal is similar to a non-writable signal except that it also
5153
5539
  * carries additional type-information for transforms, and that Angular internally
5154
5540
  * updates the signal whenever a new value is bound.
5541
+ *
5542
+ * @developerPreview
5155
5543
  */
5156
- export declare type InputSignal<ReadT, WriteT = ReadT> = Signal<ReadT> & {
5544
+ export declare interface InputSignal<ReadT, WriteT = ReadT> extends Signal<ReadT> {
5545
+ [SIGNAL]: InputSignalNode<ReadT, WriteT>;
5157
5546
  [ɵINPUT_SIGNAL_BRAND_READ_TYPE]: ReadT;
5158
5547
  [ɵINPUT_SIGNAL_BRAND_WRITE_TYPE]: WriteT;
5159
- };
5548
+ }
5549
+
5550
+ /**
5551
+ * Reactive node type for an input signal. An input signal extends a signal.
5552
+ * There are special properties to enable transforms and required inputs.
5553
+ */
5554
+ declare interface InputSignalNode<ReadT, WriteT> extends SignalNode<ReadT | typeof REQUIRED_UNSET_VALUE> {
5555
+ /**
5556
+ * User-configured transform that will run whenever a new value is applied
5557
+ * to the input signal node.
5558
+ */
5559
+ transformFn: ((value: WriteT) => ReadT) | undefined;
5560
+ /**
5561
+ * Applies a new value to the input signal. Expects transforms to be run
5562
+ * manually before.
5563
+ *
5564
+ * This function is called by the framework runtime code whenever a binding
5565
+ * changes. The value can in practice be anything at runtime, but for typing
5566
+ * purposes we assume it's a valid `ReadT` value. Type-checking will enforce that.
5567
+ */
5568
+ applyValueToInputSignal<ReadT, WriteT>(node: InputSignalNode<ReadT, WriteT>, value: ReadT): void;
5569
+ }
5160
5570
 
5161
5571
  /** Function that can be used to transform incoming input values. */
5162
5572
  declare type InputTransformFunction = (value: any) => any;
@@ -5178,6 +5588,37 @@ declare interface InternalAfterNextRenderOptions {
5178
5588
  injector?: Injector;
5179
5589
  }
5180
5590
 
5591
+ /**
5592
+ * This enum is an exact copy of the `InjectFlags` enum above, but the difference is that this is a
5593
+ * const enum, so actual enum values would be inlined in generated code. The `InjectFlags` enum can
5594
+ * be turned into a const enum when ViewEngine is removed (see TODO at the `InjectFlags` enum
5595
+ * above). The benefit of inlining is that we can use these flags at the top level without affecting
5596
+ * tree-shaking (see "no-toplevel-property-access" tslint rule for more info).
5597
+ * Keep this enum in sync with `InjectFlags` enum above.
5598
+ */
5599
+ declare const enum InternalInjectFlags {
5600
+ /** Check self and check parent injector if needed */
5601
+ Default = 0,
5602
+ /**
5603
+ * Specifies that an injector should retrieve a dependency from any injector until reaching the
5604
+ * host element of the current component. (Only used with Element Injector)
5605
+ */
5606
+ Host = 1,
5607
+ /** Don't ascend to ancestors of the node requesting injection. */
5608
+ Self = 2,
5609
+ /** Skip the node that is requesting injection. */
5610
+ SkipSelf = 4,
5611
+ /** Inject `defaultValue` instead if token not found. */
5612
+ Optional = 8,
5613
+ /**
5614
+ * This token is being injected into a pipe.
5615
+ *
5616
+ * This flag is intentionally not in the public facing `InjectFlags` because it is only added by
5617
+ * the compiler and is not a developer applicable flag.
5618
+ */
5619
+ ForPipe = 16
5620
+ }
5621
+
5181
5622
  declare interface InternalNgModuleRef<T> extends NgModuleRef<T> {
5182
5623
  _bootstrapComponents: Type<any>[];
5183
5624
  }
@@ -5571,16 +6012,30 @@ declare enum LContainerFlags {
5571
6012
  *
5572
6013
  * This flag, once set, is never unset for the `LContainer`.
5573
6014
  */
5574
- HasTransplantedViews = 2,
5575
- /**
5576
- * Indicates that this LContainer has a view underneath it that needs to be refreshed during
5577
- * change detection.
5578
- */
5579
- HasChildViewsToRefresh = 4
6015
+ HasTransplantedViews = 2
5580
6016
  }
5581
6017
 
5582
6018
  declare type LegacyInputPartialMapping = string | [bindingPropertyName: string, classPropertyName: string, transformFunction?: Function];
5583
6019
 
6020
+ /**
6021
+ * Event listener configuration returned from `getListeners`.
6022
+ * @publicApi
6023
+ */
6024
+ declare interface Listener {
6025
+ /** Name of the event listener. */
6026
+ name: string;
6027
+ /** Element that the listener is bound to. */
6028
+ element: Element;
6029
+ /** Callback that is invoked when the event is triggered. */
6030
+ callback: (value: any) => any;
6031
+ /** Whether the listener is using event capturing. */
6032
+ useCapture: boolean;
6033
+ /**
6034
+ * Type of the listener (e.g. a native DOM event or a custom @Output).
6035
+ */
6036
+ type: 'dom' | 'output';
6037
+ }
6038
+
5584
6039
  /**
5585
6040
  * Provide this token to set the locale of your application.
5586
6041
  * It is used for i18n extraction, by i18n pipes (DatePipe, I18nPluralPipe, CurrencyPipe,
@@ -5932,7 +6387,7 @@ declare interface LViewEnvironment {
5932
6387
  /** An optional custom sanitizer. */
5933
6388
  sanitizer: Sanitizer | null;
5934
6389
  /** Container for reactivity system `effect`s. */
5935
- inlineEffectRunner: FlushableEffectRunner | null;
6390
+ inlineEffectRunner: ɵEffectScheduler | null;
5936
6391
  /** Container for after render hooks */
5937
6392
  afterRenderEventManager: ɵAfterRenderEventManager | null;
5938
6393
  /** Scheduler for change detection to notify when application state changes. */
@@ -6625,6 +7080,39 @@ export declare interface NgZoneOptions {
6625
7080
  */
6626
7081
  export declare const NO_ERRORS_SCHEMA: SchemaMetadata;
6627
7082
 
7083
+ /**
7084
+ * Store the runtime input for all directives applied to a node.
7085
+ *
7086
+ * This allows efficiently setting the same input on a directive that
7087
+ * might apply to multiple directives.
7088
+ *
7089
+ * i+0: directive instance index
7090
+ * i+1: privateName
7091
+ * i+2: input flags
7092
+ *
7093
+ * e.g.
7094
+ * ```
7095
+ * {
7096
+ * "publicName": [0, 'change-minified', <bit-input-flags>]
7097
+ * }
7098
+ * ```
7099
+ */
7100
+ declare type NodeInputBindings = Record<string, (number | string | ɵɵInputFlags)[]>;
7101
+
7102
+ /**
7103
+ * Store the runtime output names for all the directives.
7104
+ *
7105
+ * i+0: directive instance index
7106
+ * i+1: privateName
7107
+ *
7108
+ * e.g.
7109
+ * ```
7110
+ * {
7111
+ * "publicName": [0, 'change-minified']
7112
+ * }
7113
+ */
7114
+ declare type NodeOutputBindings = Record<string, (number | string)[]>;
7115
+
6628
7116
  declare const NODES = "n";
6629
7117
 
6630
7118
  declare const NUM_ROOT_NODES = "r";
@@ -7087,30 +7575,6 @@ declare type ProcessProvidersFunction = (providers: Provider[]) => Provider[];
7087
7575
  */
7088
7576
  declare type ProjectionSlots = (ɵCssSelectorList | '*')[];
7089
7577
 
7090
- /**
7091
- * This mapping is necessary so we can set input properties and output listeners
7092
- * properly at runtime when property names are minified or aliased.
7093
- *
7094
- * Key: unminified / public input or output name
7095
- * Value: array containing minified / internal name and related directive index
7096
- *
7097
- * The value must be an array to support inputs and outputs with the same name
7098
- * on the same node.
7099
- */
7100
- declare type PropertyAliases = {
7101
- [key: string]: PropertyAliasValue;
7102
- };
7103
-
7104
- /**
7105
- * Store the runtime input or output names for all the directives.
7106
- *
7107
- * i+0: directive instance index
7108
- * i+1: privateName
7109
- *
7110
- * e.g. [0, 'change-minified']
7111
- */
7112
- declare type PropertyAliasValue = (number | string)[];
7113
-
7114
7578
  /**
7115
7579
  * Describes how the `Injector` should be configured.
7116
7580
  * @see ["Dependency Injection Guide"](guide/dependency-injection).
@@ -7903,6 +8367,8 @@ export declare interface RendererType2 {
7903
8367
  };
7904
8368
  }
7905
8369
 
8370
+ declare const REQUIRED_UNSET_VALUE: unique symbol;
8371
+
7906
8372
  /**
7907
8373
  * Lazily retrieves the reference value from a forwardRef.
7908
8374
  *
@@ -8249,6 +8715,11 @@ export declare interface SimpleChanges {
8249
8715
  [propName: string]: SimpleChange;
8250
8716
  }
8251
8717
 
8718
+ /**
8719
+ * Internal type for a single provider in a deep provider array.
8720
+ */
8721
+ declare type SingleProvider = TypeProvider | ValueProvider | ClassProvider | ConstructorProvider | ExistingProvider | FactoryProvider | StaticClassProvider;
8722
+
8252
8723
  /**
8253
8724
  * Type of the `SkipSelf` metadata.
8254
8725
  *
@@ -8973,12 +9444,12 @@ declare interface TNode {
8973
9444
  * Input data for all directives on this node. `null` means that there are no directives with
8974
9445
  * inputs on this node.
8975
9446
  */
8976
- inputs: PropertyAliases | null;
9447
+ inputs: NodeInputBindings | null;
8977
9448
  /**
8978
9449
  * Output data for all directives on this node. `null` means that there are no directives with
8979
9450
  * outputs on this node.
8980
9451
  */
8981
- outputs: PropertyAliases | null;
9452
+ outputs: NodeOutputBindings | null;
8982
9453
  /**
8983
9454
  * The TView attached to this node.
8984
9455
  *
@@ -10622,17 +11093,10 @@ export declare function ɵ_sanitizeUrl(url: string): string;
10622
11093
  * Delegates to an optional `AfterRenderCallbackHandler` for implementation.
10623
11094
  */
10624
11095
  export declare class ɵAfterRenderEventManager {
10625
- private renderDepth;
10626
- /**
10627
- * Mark the beginning of a render operation (i.e. CD cycle).
10628
- * Throws if called while executing callbacks.
10629
- */
10630
- begin(): void;
10631
11096
  /**
10632
- * Mark the end of a render operation. Callbacks will be
10633
- * executed if there are no more pending operations.
11097
+ * Executes callbacks. Returns `true` if any callbacks executed.
10634
11098
  */
10635
- end(): void;
11099
+ execute(): boolean;
10636
11100
  ngOnDestroy(): void;
10637
11101
  /** @nocollapse */
10638
11102
  static ɵprov: unknown;
@@ -10917,6 +11381,22 @@ export declare function ɵcompileNgModuleFactory<M>(injector: Injector, options:
10917
11381
 
10918
11382
  export declare function ɵcompilePipe(type: Type<any>, meta: Pipe): void;
10919
11383
 
11384
+ /**
11385
+ * Partial metadata for a given component instance.
11386
+ * This information might be useful for debugging purposes or tooling.
11387
+ * Currently the following fields are available:
11388
+ * - inputs
11389
+ * - outputs
11390
+ * - encapsulation
11391
+ * - changeDetection
11392
+ *
11393
+ * @publicApi
11394
+ */
11395
+ export declare interface ɵComponentDebugMetadata extends DirectiveDebugMetadata {
11396
+ encapsulation: ViewEncapsulation;
11397
+ changeDetection: ChangeDetectionStrategy;
11398
+ }
11399
+
10920
11400
  /**
10921
11401
  * Runtime link information for Components.
10922
11402
  *
@@ -11108,11 +11588,12 @@ export declare const ɵDEFER_BLOCK_DEPENDENCY_INTERCEPTOR: InjectionToken<ɵDefe
11108
11588
  export declare enum ɵDeferBlockBehavior {
11109
11589
  /**
11110
11590
  * Manual triggering mode for defer blocks. Provides control over when defer blocks render
11111
- * and which state they render. This is the default behavior in test environments.
11591
+ * and which state they render.
11112
11592
  */
11113
11593
  Manual = 0,
11114
11594
  /**
11115
11595
  * Playthrough mode for defer blocks. This mode behaves like defer blocks would in a browser.
11596
+ * This is the default behavior in test environments.
11116
11597
  */
11117
11598
  Playthrough = 1
11118
11599
  }
@@ -11192,12 +11673,11 @@ export declare function ɵdevModeEqual(a: any, b: any): boolean;
11192
11673
  */
11193
11674
  export declare interface ɵDirectiveDef<T> {
11194
11675
  /**
11195
- * A dictionary mapping the inputs' minified property names to their public API names, which
11196
- * are their aliases if any, or their original unminified property names
11197
- * (as in `@Input('alias') propertyName: any;`).
11676
+ * A dictionary mapping the inputs' public name to their minified property names
11677
+ * (along with flags if there are any).
11198
11678
  */
11199
11679
  readonly inputs: {
11200
- [P in keyof T]: string;
11680
+ [P in keyof T]?: string | [minifiedName: string, flags: ɵɵInputFlags];
11201
11681
  };
11202
11682
  /**
11203
11683
  * A dictionary mapping the private names of inputs to their transformation functions.
@@ -11215,22 +11695,20 @@ export declare interface ɵDirectiveDef<T> {
11215
11695
  * used to do further processing after the `inputs` have been inverted.
11216
11696
  */
11217
11697
  readonly inputConfig: {
11218
- [classPropertyName: string]: string | [string, string, InputTransformFunction?];
11698
+ [P in keyof T]?: string | [ɵɵInputFlags, string, string?, InputTransformFunction?];
11219
11699
  };
11220
11700
  /**
11221
11701
  * @deprecated This is only here because `NgOnChanges` incorrectly uses declared name instead of
11222
11702
  * public or minified name.
11223
11703
  */
11224
- readonly declaredInputs: {
11225
- [P in keyof T]: string;
11226
- };
11704
+ readonly declaredInputs: Record<string, string>;
11227
11705
  /**
11228
11706
  * A dictionary mapping the outputs' minified property names to their public API names, which
11229
11707
  * are their aliases if any, or their original unminified property names
11230
11708
  * (as in `@Output('alias') propertyName: any;`).
11231
11709
  */
11232
11710
  readonly outputs: {
11233
- [P in keyof T]: string;
11711
+ [P in keyof T]?: string;
11234
11712
  };
11235
11713
  /**
11236
11714
  * Function to create and refresh content queries associated with a given directive.
@@ -11328,7 +11806,7 @@ export declare interface ɵDirectiveDef<T> {
11328
11806
  findHostDirectiveDefs: ((currentDef: ɵDirectiveDef<unknown>, matchedDefs: ɵDirectiveDef<unknown>[], hostDirectiveDefs: HostDirectiveDefs) => void) | null;
11329
11807
  /** Additional directives to be applied whenever the directive has been matched. */
11330
11808
  hostDirectives: HostDirectiveDef[] | null;
11331
- setInput: (<U extends T>(this: ɵDirectiveDef<U>, instance: U, value: any, publicName: string, privateName: string) => void) | null;
11809
+ setInput: (<U extends T>(this: ɵDirectiveDef<U>, instance: U, inputSignalNode: null | InputSignalNode<unknown, unknown>, value: any, publicName: string, privateName: string) => void) | null;
11332
11810
  }
11333
11811
 
11334
11812
  /**
@@ -11350,6 +11828,10 @@ export declare abstract class ɵEffectScheduler {
11350
11828
  * It is an error to attempt to execute any effects synchronously during a scheduling operation.
11351
11829
  */
11352
11830
  abstract scheduleEffect(e: SchedulableEffect): void;
11831
+ /**
11832
+ * Run any scheduled effects.
11833
+ */
11834
+ abstract flush(): void;
11353
11835
  /** @nocollapse */
11354
11836
  static ɵprov: unknown;
11355
11837
  }
@@ -11511,6 +11993,13 @@ export declare function ɵgetUnknownPropertyStrictMode(): boolean;
11511
11993
 
11512
11994
  export declare const ɵglobal: any;
11513
11995
 
11996
+ /**
11997
+ * Default debug tools available under `window.ng`.
11998
+ */
11999
+ export declare type ɵGlobalDevModeUtils = {
12000
+ [GLOBAL_PUBLISH_EXPANDO_KEY]: typeof globalUtilsFunctions;
12001
+ };
12002
+
11514
12003
  /**
11515
12004
  * Injection token that configures the image optimized image functionality.
11516
12005
  * See {@link ImageConfig} for additional information about parameters that
@@ -11571,116 +12060,10 @@ export declare interface ɵInjectorProfilerContext {
11571
12060
  token: Type<unknown> | null;
11572
12061
  }
11573
12062
 
11574
- /**
11575
- * Initializes an input with an initial value. If no explicit value
11576
- * is specified, Angular will use `undefined`.
11577
- *
11578
- * Consider using `input.required` for inputs that don't need an
11579
- * initial value.
11580
- *
11581
- * @usageNotes
11582
- * Initialize an input in your directive or component by declaring a
11583
- * class field and initializing it with the `input()` function.
11584
- *
11585
- * ```ts
11586
- * @Directive({..})
11587
- * export class MyDir {
11588
- * firstName = input<string>(); // string|undefined
11589
- * lastName = input.required<string>(); // string
11590
- * age = input(0); // number
11591
- * }
11592
- * ```
11593
- */
11594
- export declare const ɵinput: ɵInputFunction;
11595
-
11596
12063
  declare const ɵINPUT_SIGNAL_BRAND_READ_TYPE: unique symbol;
11597
12064
 
11598
12065
  export declare const ɵINPUT_SIGNAL_BRAND_WRITE_TYPE: unique symbol;
11599
12066
 
11600
- /**
11601
- * Type of the `input` function.
11602
- *
11603
- * The input function is a special function that also provides access to
11604
- * required inputs via the `.required` property.
11605
- */
11606
- export declare type ɵInputFunction = typeof ɵinputFunctionForApiGuard & {
11607
- required: typeof ɵinputFunctionRequiredForApiGuard;
11608
- };
11609
-
11610
- /**
11611
- * Initializes an input with an initial value. If no explicit value
11612
- * is specified, Angular will use `undefined`.
11613
- *
11614
- * Consider using `input.required` for inputs that don't need an
11615
- * initial value.
11616
- *
11617
- * @usageNotes
11618
- * Initialize an input in your directive or component by declaring a
11619
- * class field and initializing it with the `input()` function.
11620
- *
11621
- * ```ts
11622
- * @Directive({..})
11623
- * export class MyDir {
11624
- * firstName = input<string>(); // string|undefined
11625
- * lastName = input.required<string>(); // string
11626
- * age = input(0); // number
11627
- * }
11628
- * ```
11629
- */
11630
- export declare function ɵinputFunctionForApiGuard<ReadT>(): InputSignal<ReadT | undefined>;
11631
-
11632
- export declare function ɵinputFunctionForApiGuard<ReadT>(initialValue: ReadT, opts?: ɵInputOptionsWithoutTransform<ReadT>): InputSignal<ReadT>;
11633
-
11634
- export declare function ɵinputFunctionForApiGuard<ReadT, WriteT>(initialValue: ReadT, opts: ɵInputOptionsWithTransform<ReadT, WriteT>): InputSignal<ReadT, WriteT>;
11635
-
11636
- /**
11637
- * Initializes a required input. Users of your directive/component,
11638
- * need to bind to this input, otherwise they will see errors.
11639
- * *
11640
- * @usageNotes
11641
- * Initialize an input in your directive or component by declaring a
11642
- * class field and initializing it with the `input()` function.
11643
- *
11644
- * ```ts
11645
- * @Directive({..})
11646
- * export class MyDir {
11647
- * firstName = input<string>(); // string|undefined
11648
- * lastName = input.required<string>(); // string
11649
- * age = input(0); // number
11650
- * }
11651
- * ```
11652
- */
11653
- export declare function ɵinputFunctionRequiredForApiGuard<ReadT>(opts?: ɵInputOptionsWithoutTransform<ReadT>): InputSignal<ReadT>;
11654
-
11655
- export declare function ɵinputFunctionRequiredForApiGuard<ReadT, WriteT>(opts: ɵInputOptionsWithTransform<ReadT, WriteT>): InputSignal<ReadT, WriteT>;
11656
-
11657
- /**
11658
- * Options for signal inputs.
11659
- */
11660
- export declare interface ɵInputOptions<ReadT, WriteT> {
11661
- /** Optional public name for the input. By default, the class field name is used. */
11662
- alias?: string;
11663
- /**
11664
- * Optional transform that runs whenever a new value is bound. Can be used to
11665
- * transform the input value before the input is updated.
11666
- *
11667
- * The transform function can widen the type of the input. For example, consider
11668
- * an input for `disabled`. In practice, as the component author, you want to only
11669
- * deal with a boolean, but users may want to bind a string if they just use the
11670
- * attribute form to bind to the input via `<my-dir input>`. A transform can then
11671
- * handle such string values and convert them to `boolean`. See: {@link booleanAttribute}.
11672
- */
11673
- transform?: (v: WriteT) => ReadT;
11674
- }
11675
-
11676
- /** Signal input options without the transform option. */
11677
- export declare type ɵInputOptionsWithoutTransform<ReadT> = Omit<ɵInputOptions<ReadT, ReadT>, 'transform'> & {
11678
- transform?: undefined;
11679
- };
11680
-
11681
- /** Signal input options with the transform option required. */
11682
- export declare type ɵInputOptionsWithTransform<ReadT, WriteT> = Required<Pick<ɵInputOptions<ReadT, WriteT>, 'transform'>> & ɵInputOptions<ReadT, WriteT>;
11683
-
11684
12067
  /**
11685
12068
  * Register a callback to run once before any userspace `afterRender` or
11686
12069
  * `afterNextRender` callbacks.
@@ -12117,18 +12500,30 @@ export declare const enum ɵProfilerEvent {
12117
12500
  }
12118
12501
 
12119
12502
  /**
12120
- * Publishes a collection of default debug tools onto`window.ng`.
12503
+ * An object that contains information about a provider that has been configured
12121
12504
  *
12122
- * These functions are available globally when Angular is in development
12123
- * mode and are automatically stripped away from prod mode is on.
12505
+ * TODO: rename to indicate that it is a debug structure eg. ProviderDebugInfo.
12124
12506
  */
12125
- export declare function ɵpublishDefaultGlobalUtils(): void;
12507
+ export declare interface ɵProviderRecord {
12508
+ /**
12509
+ * DI token that this provider is configuring
12510
+ */
12511
+ token: Type<unknown> | InjectionToken<unknown>;
12512
+ /**
12513
+ * Determines if provider is configured as view provider.
12514
+ */
12515
+ isViewProvider: boolean;
12516
+ /**
12517
+ * The raw provider associated with this ProviderRecord.
12518
+ */
12519
+ provider: SingleProvider;
12520
+ /**
12521
+ * The path of DI containers that were followed to import this provider
12522
+ */
12523
+ importPath?: Type<unknown>[];
12524
+ }
12126
12525
 
12127
- /**
12128
- * Publishes the given function to `window.ng` so that it can be
12129
- * used from the browser console when an application is not in production.
12130
- */
12131
- export declare function ɵpublishGlobalUtil(name: string, fn: Function): void;
12526
+ export declare function ɵprovideZonelessChangeDetection(): EnvironmentProviders;
12132
12527
 
12133
12528
  export declare class ɵReflectionCapabilities implements PlatformReflectionCapabilities {
12134
12529
  private _reflect;
@@ -12333,7 +12728,6 @@ export declare class ɵRuntimeError<T extends number = ɵRuntimeErrorCode> exten
12333
12728
  export declare const enum ɵRuntimeErrorCode {
12334
12729
  EXPRESSION_CHANGED_AFTER_CHECKED = -100,
12335
12730
  RECURSIVE_APPLICATION_REF_TICK = 101,
12336
- RECURSIVE_APPLICATION_RENDER = 102,
12337
12731
  INFINITE_CHANGE_DETECTION = 103,
12338
12732
  CYCLIC_DI_DEPENDENCY = -200,
12339
12733
  PROVIDER_NOT_FOUND = -201,
@@ -12396,6 +12790,7 @@ export declare const enum ɵRuntimeErrorCode {
12396
12790
  VIEW_ALREADY_DESTROYED = 911,
12397
12791
  COMPONENT_ID_COLLISION = -912,
12398
12792
  IMAGE_PERFORMANCE_WARNING = -913,
12793
+ REQUIRED_INPUT_NO_VALUE = -950,
12399
12794
  RUNTIME_DEPS_INVALID_IMPORTED_TYPE = 1000,
12400
12795
  RUNTIME_DEPS_ORPHAN_COMPONENT = 1001
12401
12796
  }
@@ -12877,26 +13272,6 @@ export declare type ɵWritable<T> = {
12877
13272
  */
12878
13273
  export declare const ɵXSS_SECURITY_URL = "https://g.co/ng/security#xss";
12879
13274
 
12880
- /**
12881
- * An `EffectScheduler` which is capable of queueing scheduled effects per-zone, and flushing them
12882
- * as an explicit operation.
12883
- */
12884
- export declare class ɵZoneAwareQueueingScheduler implements ɵEffectScheduler, FlushableEffectRunner {
12885
- private queuedEffectCount;
12886
- private queues;
12887
- scheduleEffect(handle: SchedulableEffect): void;
12888
- /**
12889
- * Run all scheduled effects.
12890
- *
12891
- * Execution order of effects within the same zone is guaranteed to be FIFO, but there is no
12892
- * ordering guarantee between effects scheduled in different zones.
12893
- */
12894
- flush(): void;
12895
- private flushQueue;
12896
- /** @nocollapse */
12897
- static ɵprov: unknown;
12898
- }
12899
-
12900
13275
  /**
12901
13276
  * Advances to an element for later binding instructions.
12902
13277
  *
@@ -12920,7 +13295,7 @@ export declare class ɵZoneAwareQueueingScheduler implements ɵEffectScheduler,
12920
13295
  *
12921
13296
  * @codeGenApi
12922
13297
  */
12923
- export declare function ɵɵadvance(delta: number): void;
13298
+ export declare function ɵɵadvance(delta?: number): void;
12924
13299
 
12925
13300
  /**
12926
13301
  * Updates the value of or removes a bound attribute on an Element.
@@ -14311,6 +14686,13 @@ export declare interface ɵɵInjectorDef<T> {
14311
14686
  imports: (InjectorType<any> | InjectorTypeWithProviders<any>)[];
14312
14687
  }
14313
14688
 
14689
+ /** Flags describing an input for a directive. */
14690
+ export declare enum ɵɵInputFlags {
14691
+ None = 0,
14692
+ SignalBased = 1,
14693
+ HasDecoratorInputTransform = 2
14694
+ }
14695
+
14314
14696
  /**
14315
14697
  * Decorates the directive definition with support for input transform functions.
14316
14698
  *
@@ -14319,7 +14701,7 @@ export declare interface ɵɵInjectorDef<T> {
14319
14701
  *
14320
14702
  * @codeGenApi
14321
14703
  */
14322
- export declare function ɵɵInputTransformsFeature(definition: ɵDirectiveDef<unknown>): void;
14704
+ export declare function ɵɵInputTransformsFeature<T>(definition: ɵDirectiveDef<T>): void;
14323
14705
 
14324
14706
  /**
14325
14707
  * Throws an error indicating that a factory function could not be generated by the compiler for a