@angular/core 17.0.7 → 17.0.9

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 (63) hide show
  1. package/esm2022/src/application/application_ref.mjs +24 -12
  2. package/esm2022/src/application/create_application.mjs +2 -2
  3. package/esm2022/src/change_detection/flags.mjs +16 -0
  4. package/esm2022/src/change_detection/scheduling/ng_zone_scheduling.mjs +164 -0
  5. package/esm2022/src/change_detection/scheduling/zoneless_scheduling.mjs +13 -0
  6. package/esm2022/src/change_detection/scheduling/zoneless_scheduling_impl.mjs +56 -0
  7. package/esm2022/src/core.mjs +2 -2
  8. package/esm2022/src/core_private_export.mjs +5 -2
  9. package/esm2022/src/core_render3_private_export.mjs +1 -2
  10. package/esm2022/src/defer/dom_triggers.mjs +1 -5
  11. package/esm2022/src/di/inject_switch.mjs +2 -3
  12. package/esm2022/src/di/r3_injector.mjs +8 -6
  13. package/esm2022/src/errors.mjs +1 -1
  14. package/esm2022/src/event_emitter.mjs +1 -2
  15. package/esm2022/src/hydration/utils.mjs +2 -2
  16. package/esm2022/src/hydration/views.mjs +2 -2
  17. package/esm2022/src/linker/view_container_ref.mjs +2 -2
  18. package/esm2022/src/pending_tasks.mjs +57 -0
  19. package/esm2022/src/platform/platform_ref.mjs +2 -2
  20. package/esm2022/src/render3/after_render_hooks.mjs +16 -34
  21. package/esm2022/src/render3/collect_native_nodes.mjs +2 -3
  22. package/esm2022/src/render3/component_ref.mjs +13 -9
  23. package/esm2022/src/render3/debug/injector_profiler.mjs +1 -1
  24. package/esm2022/src/render3/errors_di.mjs +4 -3
  25. package/esm2022/src/render3/instructions/advance.mjs +2 -2
  26. package/esm2022/src/render3/instructions/change_detection.mjs +1 -6
  27. package/esm2022/src/render3/instructions/mark_view_dirty.mjs +4 -3
  28. package/esm2022/src/render3/instructions/shared.mjs +4 -3
  29. package/esm2022/src/render3/interfaces/container.mjs +1 -6
  30. package/esm2022/src/render3/interfaces/view.mjs +1 -1
  31. package/esm2022/src/render3/node_manipulation.mjs +8 -8
  32. package/esm2022/src/render3/reactivity/effect.mjs +8 -6
  33. package/esm2022/src/render3/styling/style_binding_list.mjs +4 -4
  34. package/esm2022/src/render3/util/discovery_utils.mjs +3 -3
  35. package/esm2022/src/render3/util/global_utils.mjs +28 -28
  36. package/esm2022/src/render3/util/injector_discovery_utils.mjs +1 -1
  37. package/esm2022/src/render3/util/injector_utils.mjs +6 -5
  38. package/esm2022/src/render3/util/view_traversal_utils.mjs +3 -12
  39. package/esm2022/src/render3/util/view_utils.mjs +36 -19
  40. package/esm2022/src/render3/view_ref.mjs +2 -1
  41. package/esm2022/src/version.mjs +6 -5
  42. package/esm2022/src/zone/ng_zone.mjs +1 -61
  43. package/esm2022/testing/src/component_fixture.mjs +62 -58
  44. package/esm2022/testing/src/logger.mjs +3 -3
  45. package/fesm2022/core.mjs +374 -309
  46. package/fesm2022/core.mjs.map +1 -1
  47. package/fesm2022/primitives/signals.mjs +1 -1
  48. package/fesm2022/rxjs-interop.mjs +1 -1
  49. package/fesm2022/testing.mjs +62 -58
  50. package/fesm2022/testing.mjs.map +1 -1
  51. package/index.d.ts +405 -46
  52. package/package.json +1 -1
  53. package/primitives/signals/index.d.ts +1 -1
  54. package/rxjs-interop/index.d.ts +1 -1
  55. package/schematics/migrations/block-template-entities/bundle.js +332 -330
  56. package/schematics/migrations/block-template-entities/bundle.js.map +4 -4
  57. package/schematics/ng-generate/control-flow-migration/bundle.js +498 -397
  58. package/schematics/ng-generate/control-flow-migration/bundle.js.map +4 -4
  59. package/schematics/ng-generate/standalone-migration/bundle.js +349 -323
  60. package/schematics/ng-generate/standalone-migration/bundle.js.map +4 -4
  61. package/testing/index.d.ts +6 -2
  62. package/esm2022/src/change_detection/scheduling.mjs +0 -103
  63. 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.0.7
2
+ * @license Angular v17.0.9
3
3
  * (c) 2010-2022 Google LLC. https://angular.io/
4
4
  * License: MIT
5
5
  */
@@ -642,7 +642,7 @@ export declare class ApplicationRef {
642
642
  private _destroyed;
643
643
  private _destroyListeners;
644
644
  private readonly internalErrorHandler;
645
- private readonly zoneIsStable;
645
+ private readonly afterRenderEffectManager;
646
646
  /**
647
647
  * Indicates whether this instance was destroyed.
648
648
  */
@@ -788,6 +788,18 @@ export declare class ApplicationRef {
788
788
  static ɵprov: i0.ɵɵInjectableDeclaration<ApplicationRef>;
789
789
  }
790
790
 
791
+
792
+ /**
793
+ * Marks a component for check (in case of OnPush components) and synchronously
794
+ * performs change detection on the application this component belongs to.
795
+ *
796
+ * @param component Component to {@link ChangeDetectorRef#markForCheck mark for check}.
797
+ *
798
+ * @publicApi
799
+ * @globalApi ng
800
+ */
801
+ declare function applyChanges(component: {}): void;
802
+
791
803
  /**
792
804
  * @publicApi
793
805
  */
@@ -3041,6 +3053,18 @@ export declare interface Directive {
3041
3053
  */
3042
3054
  export declare const Directive: DirectiveDecorator;
3043
3055
 
3056
+ /**
3057
+ * Partial metadata for a given directive instance.
3058
+ * This information might be useful for debugging purposes or tooling.
3059
+ * Currently only `inputs` and `outputs` metadata is available.
3060
+ *
3061
+ * @publicApi
3062
+ */
3063
+ declare interface DirectiveDebugMetadata {
3064
+ inputs: Record<string, string>;
3065
+ outputs: Record<string, string>;
3066
+ }
3067
+
3044
3068
  /**
3045
3069
  * Type of the Directive decorator / constructor function.
3046
3070
  * @publicApi
@@ -3911,6 +3935,49 @@ export declare interface ForwardRefFn {
3911
3935
  (): any;
3912
3936
  }
3913
3937
 
3938
+ /**
3939
+ * Retrieves the component instance associated with a given DOM element.
3940
+ *
3941
+ * @usageNotes
3942
+ * Given the following DOM structure:
3943
+ *
3944
+ * ```html
3945
+ * <app-root>
3946
+ * <div>
3947
+ * <child-comp></child-comp>
3948
+ * </div>
3949
+ * </app-root>
3950
+ * ```
3951
+ *
3952
+ * Calling `getComponent` on `<child-comp>` will return the instance of `ChildComponent`
3953
+ * associated with this DOM element.
3954
+ *
3955
+ * Calling the function on `<app-root>` will return the `MyApp` instance.
3956
+ *
3957
+ *
3958
+ * @param element DOM element from which the component should be retrieved.
3959
+ * @returns Component instance associated with the element or `null` if there
3960
+ * is no component associated with it.
3961
+ *
3962
+ * @publicApi
3963
+ * @globalApi ng
3964
+ */
3965
+ declare function getComponent<T>(element: Element): T | null;
3966
+
3967
+ /**
3968
+ * If inside an embedded view (e.g. `*ngIf` or `*ngFor`), retrieves the context of the embedded
3969
+ * view that the element is part of. Otherwise retrieves the instance of the component whose view
3970
+ * owns the element (in this case, the result is the same as calling `getOwningComponent`).
3971
+ *
3972
+ * @param element Element for which to get the surrounding component instance.
3973
+ * @returns Instance of the component that is around the element or null if the element isn't
3974
+ * inside any component.
3975
+ *
3976
+ * @publicApi
3977
+ * @globalApi ng
3978
+ */
3979
+ declare function getContext<T extends {}>(element: Element): T | null;
3980
+
3914
3981
  /**
3915
3982
  * @publicApi
3916
3983
  */
@@ -3918,6 +3985,115 @@ declare function getDebugNode(nativeNode: any): DebugNode | null;
3918
3985
  export { getDebugNode }
3919
3986
  export { getDebugNode as ɵgetDebugNode }
3920
3987
 
3988
+ /**
3989
+ * Discovers the dependencies of an injectable instance. Provides DI information about each
3990
+ * dependency that the injectable was instantiated with, including where they were provided from.
3991
+ *
3992
+ * @param injector An injector instance
3993
+ * @param token a DI token that was constructed by the given injector instance
3994
+ * @returns an object that contains the created instance of token as well as all of the dependencies
3995
+ * that it was instantiated with OR undefined if the token was not created within the given
3996
+ * injector.
3997
+ */
3998
+ declare function getDependenciesFromInjectable<T>(injector: Injector, token: Type<T> | InjectionToken<T>): {
3999
+ instance: T;
4000
+ dependencies: Omit<InjectedService, 'injectedIn'>[];
4001
+ } | undefined;
4002
+
4003
+ /**
4004
+ * Returns the debug (partial) metadata for a particular directive or component instance.
4005
+ * The function accepts an instance of a directive or component and returns the corresponding
4006
+ * metadata.
4007
+ *
4008
+ * @param directiveOrComponentInstance Instance of a directive or component
4009
+ * @returns metadata of the passed directive or component
4010
+ *
4011
+ * @publicApi
4012
+ * @globalApi ng
4013
+ */
4014
+ declare function getDirectiveMetadata(directiveOrComponentInstance: any): ɵComponentDebugMetadata | DirectiveDebugMetadata | null;
4015
+
4016
+ /**
4017
+ * Retrieves an `Injector` associated with an element, component or directive instance.
4018
+ *
4019
+ * @param elementOrDir DOM element, component or directive instance for which to
4020
+ * retrieve the injector.
4021
+ * @returns Injector associated with the element, component or directive instance.
4022
+ *
4023
+ * @publicApi
4024
+ * @globalApi ng
4025
+ */
4026
+ declare function getInjector(elementOrDir: Element | {}): Injector;
4027
+
4028
+ /**
4029
+ *
4030
+ * Given an injector, this function will return
4031
+ * an object containing the type and source of the injector.
4032
+ *
4033
+ * | | type | source |
4034
+ * |--------------|-------------|-------------------------------------------------------------|
4035
+ * | NodeInjector | element | DOM element that created this injector |
4036
+ * | R3Injector | environment | `injector.source` |
4037
+ * | NullInjector | null | null |
4038
+ *
4039
+ * @param injector the Injector to get metadata for
4040
+ * @returns an object containing the type and source of the given injector. If the injector metadata
4041
+ * cannot be determined, returns null.
4042
+ */
4043
+ declare function getInjectorMetadata(injector: Injector): {
4044
+ type: 'element';
4045
+ source: RElement;
4046
+ } | {
4047
+ type: 'environment';
4048
+ source: string | null;
4049
+ } | {
4050
+ type: 'null';
4051
+ source: null;
4052
+ } | null;
4053
+
4054
+ /**
4055
+ * Gets the providers configured on an injector.
4056
+ *
4057
+ * @param injector the injector to lookup the providers of
4058
+ * @returns ProviderRecord[] an array of objects representing the providers of the given injector
4059
+ */
4060
+ declare function getInjectorProviders(injector: Injector): ɵProviderRecord[];
4061
+
4062
+ declare function getInjectorResolutionPath(injector: Injector): Injector[];
4063
+
4064
+ /**
4065
+ * Retrieves a list of event listeners associated with a DOM element. The list does include host
4066
+ * listeners, but it does not include event listeners defined outside of the Angular context
4067
+ * (e.g. through `addEventListener`).
4068
+ *
4069
+ * @usageNotes
4070
+ * Given the following DOM structure:
4071
+ *
4072
+ * ```html
4073
+ * <app-root>
4074
+ * <div (click)="doSomething()"></div>
4075
+ * </app-root>
4076
+ * ```
4077
+ *
4078
+ * Calling `getListeners` on `<div>` will return an object that looks as follows:
4079
+ *
4080
+ * ```ts
4081
+ * {
4082
+ * name: 'click',
4083
+ * element: <div>,
4084
+ * callback: () => doSomething(),
4085
+ * useCapture: false
4086
+ * }
4087
+ * ```
4088
+ *
4089
+ * @param element Element for which the DOM listeners should be retrieved.
4090
+ * @returns Array of event listeners on the DOM element.
4091
+ *
4092
+ * @publicApi
4093
+ * @globalApi ng
4094
+ */
4095
+ declare function getListeners(element: Element): Listener[];
4096
+
3921
4097
  /**
3922
4098
  * Returns the NgModuleFactory with the given id (specified using [@NgModule.id
3923
4099
  * field](api/core/NgModule#id)), if it exists and has been loaded. Factories for NgModules that do
@@ -3935,6 +4111,23 @@ export declare function getModuleFactory(id: string): NgModuleFactory<any>;
3935
4111
  */
3936
4112
  export declare function getNgModuleById<T>(id: string): Type<T>;
3937
4113
 
4114
+ /**
4115
+ * Retrieves the component instance whose view contains the DOM element.
4116
+ *
4117
+ * For example, if `<child-comp>` is used in the template of `<app-comp>`
4118
+ * (i.e. a `ViewChild` of `<app-comp>`), calling `getOwningComponent` on `<child-comp>`
4119
+ * would return `<app-comp>`.
4120
+ *
4121
+ * @param elementOrDir DOM element, component or directive instance
4122
+ * for which to retrieve the root components.
4123
+ * @returns Component instance whose view owns the DOM element or null if the element is not
4124
+ * part of a component view.
4125
+ *
4126
+ * @publicApi
4127
+ * @globalApi ng
4128
+ */
4129
+ declare function getOwningComponent<T>(elementOrDir: Element | {}): T | null;
4130
+
3938
4131
  /**
3939
4132
  * Returns the current platform.
3940
4133
  *
@@ -3942,6 +4135,19 @@ export declare function getNgModuleById<T>(id: string): Type<T>;
3942
4135
  */
3943
4136
  export declare function getPlatform(): PlatformRef | null;
3944
4137
 
4138
+ /**
4139
+ * Retrieves all root components associated with a DOM element, directive or component instance.
4140
+ * Root components are those which have been bootstrapped by Angular.
4141
+ *
4142
+ * @param elementOrDir DOM element, component or directive instance
4143
+ * for which to retrieve the root components.
4144
+ * @returns Root components associated with the target object.
4145
+ *
4146
+ * @publicApi
4147
+ * @globalApi ng
4148
+ */
4149
+ declare function getRootComponents(elementOrDir: Element | {}): {}[];
4150
+
3945
4151
  /**
3946
4152
  * Adapter interface for retrieving the `Testability` service associated for a
3947
4153
  * particular context.
@@ -3953,6 +4159,12 @@ export declare interface GetTestability {
3953
4159
  findTestabilityInTree(registry: TestabilityRegistry, elem: any, findInAncestors: boolean): Testability | null;
3954
4160
  }
3955
4161
 
4162
+ /**
4163
+ * This value reflects the property on the window where the dev
4164
+ * tools are patched (window.ng).
4165
+ * */
4166
+ declare const GLOBAL_PUBLISH_EXPANDO_KEY = "ng";
4167
+
3956
4168
  /**
3957
4169
  * The goal here is to make sure that the browser DOM API is the Renderer.
3958
4170
  * We do this by defining a subset of DOM API to be the renderer and then
@@ -3965,6 +4177,29 @@ declare type GlobalTargetName = 'document' | 'window' | 'body';
3965
4177
 
3966
4178
  declare type GlobalTargetResolver = (element: any) => EventTarget;
3967
4179
 
4180
+ declare const globalUtilsFunctions: {
4181
+ /**
4182
+ * Warning: functions that start with `ɵ` are considered *INTERNAL* and should not be relied upon
4183
+ * in application's code. The contract of those functions might be changed in any release and/or a
4184
+ * function can be removed completely.
4185
+ */
4186
+ ɵgetDependenciesFromInjectable: typeof getDependenciesFromInjectable;
4187
+ ɵgetInjectorProviders: typeof getInjectorProviders;
4188
+ ɵgetInjectorResolutionPath: typeof getInjectorResolutionPath;
4189
+ ɵgetInjectorMetadata: typeof getInjectorMetadata;
4190
+ ɵsetProfiler: (profiler: ɵProfiler | null) => void;
4191
+ getDirectiveMetadata: typeof getDirectiveMetadata;
4192
+ getComponent: typeof getComponent;
4193
+ getContext: typeof getContext;
4194
+ getListeners: typeof getListeners;
4195
+ getOwningComponent: typeof getOwningComponent;
4196
+ getHostElement: typeof ɵgetHostElement;
4197
+ getInjector: typeof getInjector;
4198
+ getRootComponents: typeof getRootComponents;
4199
+ getDirectives: typeof ɵgetDirectives;
4200
+ applyChanges: typeof applyChanges;
4201
+ };
4202
+
3968
4203
  /**
3969
4204
  * Array of hooks that should be executed for a view and their directive indices.
3970
4205
  *
@@ -4817,6 +5052,36 @@ export declare interface InjectDecorator {
4817
5052
  new (token: any): Inject;
4818
5053
  }
4819
5054
 
5055
+ /**
5056
+ * An object that contains information a service that has been injected within an
5057
+ * InjectorProfilerContext
5058
+ */
5059
+ declare interface InjectedService {
5060
+ /**
5061
+ * DI token of the Service that is injected
5062
+ */
5063
+ token?: Type<unknown> | InjectionToken<unknown>;
5064
+ /**
5065
+ * Value of the injected service
5066
+ */
5067
+ value: unknown;
5068
+ /**
5069
+ * Flags that this service was injected with
5070
+ */
5071
+ flags?: InternalInjectFlags | InjectFlags | InjectOptions;
5072
+ /**
5073
+ * Injector that this service was provided in.
5074
+ */
5075
+ providedIn?: Injector;
5076
+ /**
5077
+ * In NodeInjectors, the LView and TNode that serviced this injection.
5078
+ */
5079
+ injectedIn?: {
5080
+ lView: LView;
5081
+ tNode: TNode;
5082
+ };
5083
+ }
5084
+
4820
5085
  /**
4821
5086
  * Injection flags for DI.
4822
5087
  *
@@ -5169,6 +5434,37 @@ declare interface InternalAfterNextRenderOptions {
5169
5434
  injector?: Injector;
5170
5435
  }
5171
5436
 
5437
+ /**
5438
+ * This enum is an exact copy of the `InjectFlags` enum above, but the difference is that this is a
5439
+ * const enum, so actual enum values would be inlined in generated code. The `InjectFlags` enum can
5440
+ * be turned into a const enum when ViewEngine is removed (see TODO at the `InjectFlags` enum
5441
+ * above). The benefit of inlining is that we can use these flags at the top level without affecting
5442
+ * tree-shaking (see "no-toplevel-property-access" tslint rule for more info).
5443
+ * Keep this enum in sync with `InjectFlags` enum above.
5444
+ */
5445
+ declare const enum InternalInjectFlags {
5446
+ /** Check self and check parent injector if needed */
5447
+ Default = 0,
5448
+ /**
5449
+ * Specifies that an injector should retrieve a dependency from any injector until reaching the
5450
+ * host element of the current component. (Only used with Element Injector)
5451
+ */
5452
+ Host = 1,
5453
+ /** Don't ascend to ancestors of the node requesting injection. */
5454
+ Self = 2,
5455
+ /** Skip the node that is requesting injection. */
5456
+ SkipSelf = 4,
5457
+ /** Inject `defaultValue` instead if token not found. */
5458
+ Optional = 8,
5459
+ /**
5460
+ * This token is being injected into a pipe.
5461
+ *
5462
+ * This flag is intentionally not in the public facing `InjectFlags` because it is only added by
5463
+ * the compiler and is not a developer applicable flag.
5464
+ */
5465
+ ForPipe = 16
5466
+ }
5467
+
5172
5468
  declare interface InternalNgModuleRef<T> extends NgModuleRef<T> {
5173
5469
  _bootstrapComponents: Type<any>[];
5174
5470
  }
@@ -5562,12 +5858,26 @@ declare enum LContainerFlags {
5562
5858
  *
5563
5859
  * This flag, once set, is never unset for the `LContainer`.
5564
5860
  */
5565
- HasTransplantedViews = 2,
5861
+ HasTransplantedViews = 2
5862
+ }
5863
+
5864
+ /**
5865
+ * Event listener configuration returned from `getListeners`.
5866
+ * @publicApi
5867
+ */
5868
+ declare interface Listener {
5869
+ /** Name of the event listener. */
5870
+ name: string;
5871
+ /** Element that the listener is bound to. */
5872
+ element: Element;
5873
+ /** Callback that is invoked when the event is triggered. */
5874
+ callback: (value: any) => any;
5875
+ /** Whether the listener is using event capturing. */
5876
+ useCapture: boolean;
5566
5877
  /**
5567
- * Indicates that this LContainer has a view underneath it that needs to be refreshed during
5568
- * change detection.
5878
+ * Type of the listener (e.g. a native DOM event or a custom @Output).
5569
5879
  */
5570
- HasChildViewsToRefresh = 4
5880
+ type: 'dom' | 'output';
5571
5881
  }
5572
5882
 
5573
5883
  /**
@@ -5924,6 +6234,8 @@ declare interface LViewEnvironment {
5924
6234
  inlineEffectRunner: FlushableEffectRunner | null;
5925
6235
  /** Container for after render hooks */
5926
6236
  afterRenderEventManager: ɵAfterRenderEventManager | null;
6237
+ /** Scheduler for change detection to notify when application state changes. */
6238
+ changeDetectionScheduler: ɵChangeDetectionScheduler | null;
5927
6239
  }
5928
6240
 
5929
6241
  /** Flags associated with an LView (saved in LView[FLAGS]) */
@@ -8234,6 +8546,11 @@ export declare interface SimpleChanges {
8234
8546
  [propName: string]: SimpleChange;
8235
8547
  }
8236
8548
 
8549
+ /**
8550
+ * Internal type for a single provider in a deep provider array.
8551
+ */
8552
+ declare type SingleProvider = TypeProvider | ValueProvider | ClassProvider | ConstructorProvider | ExistingProvider | FactoryProvider | StaticClassProvider;
8553
+
8237
8554
  /**
8238
8555
  * Type of the `SkipSelf` metadata.
8239
8556
  *
@@ -10607,17 +10924,10 @@ export declare function ɵ_sanitizeUrl(url: string): string;
10607
10924
  * Delegates to an optional `AfterRenderCallbackHandler` for implementation.
10608
10925
  */
10609
10926
  export declare class ɵAfterRenderEventManager {
10610
- private renderDepth;
10611
- /**
10612
- * Mark the beginning of a render operation (i.e. CD cycle).
10613
- * Throws if called while executing callbacks.
10614
- */
10615
- begin(): void;
10616
10927
  /**
10617
- * Mark the end of a render operation. Callbacks will be
10618
- * executed if there are no more pending operations.
10928
+ * Executes callbacks. Returns `true` if any callbacks executed.
10619
10929
  */
10620
- end(): void;
10930
+ execute(): boolean;
10621
10931
  ngOnDestroy(): void;
10622
10932
  /** @nocollapse */
10623
10933
  static ɵprov: unknown;
@@ -10853,6 +11163,14 @@ export declare const enum ɵBypassType {
10853
11163
  Style = "Style"
10854
11164
  }
10855
11165
 
11166
+
11167
+ /**
11168
+ * Injectable that is notified when an `LView` is made aware of changes to application state.
11169
+ */
11170
+ export declare abstract class ɵChangeDetectionScheduler {
11171
+ abstract notify(): void;
11172
+ }
11173
+
10856
11174
  export declare function ɵclearResolutionOfComponentResourcesQueue(): Map<Type<any>, Component>;
10857
11175
 
10858
11176
  /**
@@ -10894,6 +11212,22 @@ export declare function ɵcompileNgModuleFactory<M>(injector: Injector, options:
10894
11212
 
10895
11213
  export declare function ɵcompilePipe(type: Type<any>, meta: Pipe): void;
10896
11214
 
11215
+ /**
11216
+ * Partial metadata for a given component instance.
11217
+ * This information might be useful for debugging purposes or tooling.
11218
+ * Currently the following fields are available:
11219
+ * - inputs
11220
+ * - outputs
11221
+ * - encapsulation
11222
+ * - changeDetection
11223
+ *
11224
+ * @publicApi
11225
+ */
11226
+ export declare interface ɵComponentDebugMetadata extends DirectiveDebugMetadata {
11227
+ encapsulation: ViewEncapsulation;
11228
+ changeDetection: ChangeDetectionStrategy;
11229
+ }
11230
+
10897
11231
  /**
10898
11232
  * Runtime link information for Components.
10899
11233
  *
@@ -11403,6 +11737,9 @@ export declare function ɵgetDeferBlocks(lView: LView, deferBlocks: ɵDeferBlock
11403
11737
  */
11404
11738
  export declare function ɵgetDirectives(node: Node): {}[];
11405
11739
 
11740
+
11741
+ export declare function ɵgetEnsureDirtyViewsAreAlwaysReachable(): boolean;
11742
+
11406
11743
  /**
11407
11744
  * Retrieves the host element of a component or directive instance.
11408
11745
  * The host element is the DOM element that matched the selector of the directive.
@@ -11482,6 +11819,13 @@ export declare function ɵgetUnknownPropertyStrictMode(): boolean;
11482
11819
 
11483
11820
  export declare const ɵglobal: any;
11484
11821
 
11822
+ /**
11823
+ * Default debug tools available under `window.ng`.
11824
+ */
11825
+ export declare type ɵGlobalDevModeUtils = {
11826
+ [GLOBAL_PUBLISH_EXPANDO_KEY]: typeof globalUtilsFunctions;
11827
+ };
11828
+
11485
11829
  /**
11486
11830
  * Injection token that configures the image optimized image functionality.
11487
11831
  * See {@link ImageConfig} for additional information about parameters that
@@ -11514,26 +11858,6 @@ export declare type ɵImageConfig = {
11514
11858
  disableImageLazyLoadWarning?: boolean;
11515
11859
  };
11516
11860
 
11517
- /**
11518
- * *Internal* service that keeps track of pending tasks happening in the system
11519
- * during the initial rendering. No tasks are tracked after an initial
11520
- * rendering.
11521
- *
11522
- * This information is needed to make sure that the serialization on the server
11523
- * is delayed until all tasks in the queue (such as an initial navigation or a
11524
- * pending HTTP request) are completed.
11525
- */
11526
- export declare class ɵInitialRenderPendingTasks implements OnDestroy {
11527
- private taskId;
11528
- private pendingTasks;
11529
- hasPendingTasks: BehaviorSubject<boolean>;
11530
- add(): number;
11531
- remove(taskId: number): void;
11532
- ngOnDestroy(): void;
11533
- static ɵfac: i0.ɵɵFactoryDeclaration<ɵInitialRenderPendingTasks, never>;
11534
- static ɵprov: i0.ɵɵInjectableDeclaration<ɵInitialRenderPendingTasks>;
11535
- }
11536
-
11537
11861
  /** Returns a ChangeDetectorRef (a.k.a. a ViewRef) */
11538
11862
  export declare function ɵinjectChangeDetectorRef(flags: InjectFlags): ChangeDetectorRef;
11539
11863
 
@@ -11870,6 +12194,28 @@ export declare const ɵNOT_FOUND_CHECK_ONLY_ELEMENT_INJECTOR: {};
11870
12194
  */
11871
12195
  export declare function ɵpatchComponentDefWithScope<C>(componentDef: ɵComponentDef<C>, transitiveScopes: ɵNgModuleTransitiveScopes): void;
11872
12196
 
12197
+ /**
12198
+ * *Internal* service that keeps track of pending tasks happening in the system.
12199
+ *
12200
+ * This information is needed to make sure that the serialization on the server
12201
+ * is delayed until all tasks in the queue (such as an initial navigation or a
12202
+ * pending HTTP request) are completed.
12203
+ *
12204
+ * Pending tasks continue to contribute to the stableness of `ApplicationRef`
12205
+ * throughout the lifetime of the application.
12206
+ */
12207
+ export declare class ɵPendingTasks implements OnDestroy {
12208
+ private taskId;
12209
+ private pendingTasks;
12210
+ private get _hasPendingTasks();
12211
+ hasPendingTasks: BehaviorSubject<boolean>;
12212
+ add(): number;
12213
+ remove(taskId: number): void;
12214
+ ngOnDestroy(): void;
12215
+ static ɵfac: i0.ɵɵFactoryDeclaration<ɵPendingTasks, never>;
12216
+ static ɵprov: i0.ɵɵInjectableDeclaration<ɵPendingTasks>;
12217
+ }
12218
+
11873
12219
 
11874
12220
  /**
11875
12221
  * A guarded `performance.mark` for feature marking.
@@ -11976,18 +12322,30 @@ export declare const enum ɵProfilerEvent {
11976
12322
  }
11977
12323
 
11978
12324
  /**
11979
- * Publishes a collection of default debug tools onto`window.ng`.
12325
+ * An object that contains information about a provider that has been configured
11980
12326
  *
11981
- * These functions are available globally when Angular is in development
11982
- * mode and are automatically stripped away from prod mode is on.
12327
+ * TODO: rename to indicate that it is a debug structure eg. ProviderDebugInfo.
11983
12328
  */
11984
- export declare function ɵpublishDefaultGlobalUtils(): void;
12329
+ export declare interface ɵProviderRecord {
12330
+ /**
12331
+ * DI token that this provider is configuring
12332
+ */
12333
+ token: Type<unknown> | InjectionToken<unknown>;
12334
+ /**
12335
+ * Determines if provider is configured as view provider.
12336
+ */
12337
+ isViewProvider: boolean;
12338
+ /**
12339
+ * The raw provider associated with this ProviderRecord.
12340
+ */
12341
+ provider: SingleProvider;
12342
+ /**
12343
+ * The path of DI containers that were followed to import this provider
12344
+ */
12345
+ importPath?: Type<unknown>[];
12346
+ }
11985
12347
 
11986
- /**
11987
- * Publishes the given function to `window.ng` so that it can be
11988
- * used from the browser console when an application is not in production.
11989
- */
11990
- export declare function ɵpublishGlobalUtil(name: string, fn: Function): void;
12348
+ export declare function ɵprovideZonelessChangeDetection(): EnvironmentProviders;
11991
12349
 
11992
12350
  export declare class ɵReflectionCapabilities implements PlatformReflectionCapabilities {
11993
12351
  private _reflect;
@@ -12192,7 +12550,6 @@ export declare class ɵRuntimeError<T extends number = ɵRuntimeErrorCode> exten
12192
12550
  export declare const enum ɵRuntimeErrorCode {
12193
12551
  EXPRESSION_CHANGED_AFTER_CHECKED = -100,
12194
12552
  RECURSIVE_APPLICATION_REF_TICK = 101,
12195
- RECURSIVE_APPLICATION_RENDER = 102,
12196
12553
  INFINITE_CHANGE_DETECTION = 103,
12197
12554
  CYCLIC_DI_DEPENDENCY = -200,
12198
12555
  PROVIDER_NOT_FOUND = -201,
@@ -12361,6 +12718,8 @@ export declare function ɵsetCurrentInjector(injector: Injector | null | undefin
12361
12718
  */
12362
12719
  export declare function ɵsetDocument(document: Document | undefined): void;
12363
12720
 
12721
+ export declare function ɵsetEnsureDirtyViewsAreAlwaysReachable(v: boolean): void;
12722
+
12364
12723
  export declare function ɵsetInjectorProfilerContext(context: ɵInjectorProfilerContext): ɵInjectorProfilerContext;
12365
12724
 
12366
12725
 
@@ -12769,7 +13128,7 @@ export declare class ɵZoneAwareQueueingScheduler implements ɵEffectScheduler,
12769
13128
  *
12770
13129
  * @codeGenApi
12771
13130
  */
12772
- export declare function ɵɵadvance(delta: number): void;
13131
+ export declare function ɵɵadvance(delta?: number): void;
12773
13132
 
12774
13133
  /**
12775
13134
  * Updates the value of or removes a bound attribute on an Element.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@angular/core",
3
- "version": "17.0.7",
3
+ "version": "17.0.9",
4
4
  "description": "Angular - the core framework",
5
5
  "author": "angular",
6
6
  "license": "MIT",
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license Angular v17.0.7
2
+ * @license Angular v17.0.9
3
3
  * (c) 2010-2022 Google LLC. https://angular.io/
4
4
  * License: MIT
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license Angular v17.0.7
2
+ * @license Angular v17.0.9
3
3
  * (c) 2010-2022 Google LLC. https://angular.io/
4
4
  * License: MIT
5
5
  */