@angular/cdk 17.3.6 → 17.3.8

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.
package/fesm2022/menu.mjs CHANGED
@@ -188,6 +188,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.0", ngImpor
188
188
 
189
189
  /** Injection token used for an implementation of MenuStack. */
190
190
  const MENU_TRIGGER = new InjectionToken('cdk-menu-trigger');
191
+ /** Injection token used to configure the behavior of the menu when the page is scrolled. */
192
+ const MENU_SCROLL_STRATEGY = new InjectionToken('cdk-menu-scroll-strategy', {
193
+ providedIn: 'root',
194
+ factory: () => {
195
+ const overlay = inject(Overlay);
196
+ return () => overlay.scrollStrategies.reposition();
197
+ },
198
+ });
191
199
  /**
192
200
  * Abstract directive that implements shared logic common to all menu triggers.
193
201
  * This class can be extended to create custom menu trigger types.
@@ -200,6 +208,8 @@ class CdkMenuTriggerBase {
200
208
  this.viewContainerRef = inject(ViewContainerRef);
201
209
  /** The menu stack in which this menu resides. */
202
210
  this.menuStack = inject(MENU_STACK);
211
+ /** Function used to configure the scroll strategy for the menu. */
212
+ this.menuScrollStrategy = inject(MENU_SCROLL_STRATEGY);
203
213
  /** Emits when the attached menu is requested to open */
204
214
  this.opened = new EventEmitter();
205
215
  /** Emits when the attached menu is requested to close */
@@ -675,7 +685,7 @@ class CdkMenuTrigger extends CdkMenuTriggerBase {
675
685
  _getOverlayConfig() {
676
686
  return new OverlayConfig({
677
687
  positionStrategy: this._getOverlayPositionStrategy(),
678
- scrollStrategy: this._overlay.scrollStrategies.reposition(),
688
+ scrollStrategy: this.menuScrollStrategy(),
679
689
  direction: this._directionality || undefined,
680
690
  });
681
691
  }
@@ -1716,7 +1726,7 @@ class CdkContextMenuTrigger extends CdkMenuTriggerBase {
1716
1726
  _getOverlayConfig(coordinates) {
1717
1727
  return new OverlayConfig({
1718
1728
  positionStrategy: this._getOverlayPositionStrategy(coordinates),
1719
- scrollStrategy: this._overlay.scrollStrategies.reposition(),
1729
+ scrollStrategy: this.menuScrollStrategy(),
1720
1730
  direction: this._directionality || undefined,
1721
1731
  });
1722
1732
  }
@@ -1876,5 +1886,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.0", ngImpor
1876
1886
  * Generated bundle index. Do not edit.
1877
1887
  */
1878
1888
 
1879
- export { CDK_MENU, CdkContextMenuTrigger, CdkMenu, CdkMenuBar, CdkMenuBase, CdkMenuGroup, CdkMenuItem, CdkMenuItemCheckbox, CdkMenuItemRadio, CdkMenuItemSelectable, CdkMenuModule, CdkMenuTrigger, CdkMenuTriggerBase, CdkTargetMenuAim, ContextMenuTracker, FocusNext, MENU_AIM, MENU_STACK, MENU_TRIGGER, MenuStack, PARENT_OR_NEW_INLINE_MENU_STACK_PROVIDER, PARENT_OR_NEW_MENU_STACK_PROVIDER, PointerFocusTracker, TargetMenuAim };
1889
+ export { CDK_MENU, CdkContextMenuTrigger, CdkMenu, CdkMenuBar, CdkMenuBase, CdkMenuGroup, CdkMenuItem, CdkMenuItemCheckbox, CdkMenuItemRadio, CdkMenuItemSelectable, CdkMenuModule, CdkMenuTrigger, CdkMenuTriggerBase, CdkTargetMenuAim, ContextMenuTracker, FocusNext, MENU_AIM, MENU_SCROLL_STRATEGY, MENU_STACK, MENU_TRIGGER, MenuStack, PARENT_OR_NEW_INLINE_MENU_STACK_PROVIDER, PARENT_OR_NEW_MENU_STACK_PROVIDER, PointerFocusTracker, TargetMenuAim };
1880
1890
  //# sourceMappingURL=menu.mjs.map