@angular/cdk 21.0.0-rc.0 → 21.0.0-rc.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (66) hide show
  1. package/fesm2022/_a11y-module-chunk.mjs.map +1 -1
  2. package/fesm2022/_activedescendant-key-manager-chunk.mjs.map +1 -1
  3. package/fesm2022/_array-chunk.mjs.map +1 -1
  4. package/fesm2022/_breakpoints-observer-chunk.mjs.map +1 -1
  5. package/fesm2022/_css-pixel-value-chunk.mjs.map +1 -1
  6. package/fesm2022/_data-source-chunk.mjs.map +1 -1
  7. package/fesm2022/_directionality-chunk.mjs.map +1 -1
  8. package/fesm2022/_dispose-view-repeater-strategy-chunk.mjs.map +1 -1
  9. package/fesm2022/_element-chunk.mjs.map +1 -1
  10. package/fesm2022/_fake-event-detection-chunk.mjs.map +1 -1
  11. package/fesm2022/_focus-key-manager-chunk.mjs.map +1 -1
  12. package/fesm2022/_focus-monitor-chunk.mjs.map +1 -1
  13. package/fesm2022/_id-generator-chunk.mjs +3 -2
  14. package/fesm2022/_id-generator-chunk.mjs.map +1 -1
  15. package/fesm2022/_keycodes-chunk.mjs.map +1 -1
  16. package/fesm2022/_list-key-manager-chunk.mjs.map +1 -1
  17. package/fesm2022/_overlay-module-chunk.mjs +50 -33
  18. package/fesm2022/_overlay-module-chunk.mjs.map +1 -1
  19. package/fesm2022/_passive-listeners-chunk.mjs.map +1 -1
  20. package/fesm2022/_platform-chunk.mjs.map +1 -1
  21. package/fesm2022/_recycle-view-repeater-strategy-chunk.mjs.map +1 -1
  22. package/fesm2022/_scrolling-chunk.mjs.map +1 -1
  23. package/fesm2022/_selection-model-chunk.mjs.map +1 -1
  24. package/fesm2022/_shadow-dom-chunk.mjs.map +1 -1
  25. package/fesm2022/_style-loader-chunk.mjs.map +1 -1
  26. package/fesm2022/_test-environment-chunk.mjs.map +1 -1
  27. package/fesm2022/_tree-key-manager-chunk.mjs.map +1 -1
  28. package/fesm2022/_typeahead-chunk.mjs.map +1 -1
  29. package/fesm2022/_unique-selection-dispatcher-chunk.mjs.map +1 -1
  30. package/fesm2022/a11y.mjs.map +1 -1
  31. package/fesm2022/accordion.mjs.map +1 -1
  32. package/fesm2022/bidi.mjs.map +1 -1
  33. package/fesm2022/cdk.mjs +1 -1
  34. package/fesm2022/cdk.mjs.map +1 -1
  35. package/fesm2022/clipboard.mjs.map +1 -1
  36. package/fesm2022/coercion-private.mjs.map +1 -1
  37. package/fesm2022/coercion.mjs.map +1 -1
  38. package/fesm2022/dialog.mjs +1 -1
  39. package/fesm2022/dialog.mjs.map +1 -1
  40. package/fesm2022/drag-drop.mjs.map +1 -1
  41. package/fesm2022/keycodes.mjs.map +1 -1
  42. package/fesm2022/layout.mjs.map +1 -1
  43. package/fesm2022/listbox.mjs.map +1 -1
  44. package/fesm2022/menu.mjs.map +1 -1
  45. package/fesm2022/observers-private.mjs.map +1 -1
  46. package/fesm2022/observers.mjs.map +1 -1
  47. package/fesm2022/overlay.mjs +1 -1
  48. package/fesm2022/overlay.mjs.map +1 -1
  49. package/fesm2022/platform.mjs.map +1 -1
  50. package/fesm2022/portal.mjs.map +1 -1
  51. package/fesm2022/private.mjs.map +1 -1
  52. package/fesm2022/scrolling.mjs.map +1 -1
  53. package/fesm2022/stepper.mjs.map +1 -1
  54. package/fesm2022/table.mjs.map +1 -1
  55. package/fesm2022/testing-selenium-webdriver.mjs.map +1 -1
  56. package/fesm2022/testing-testbed.mjs.map +1 -1
  57. package/fesm2022/testing.mjs.map +1 -1
  58. package/fesm2022/text-field.mjs.map +1 -1
  59. package/fesm2022/tree.mjs.map +1 -1
  60. package/overlay/_index.scss +8 -1
  61. package/overlay-prebuilt.css +1 -1
  62. package/package.json +1 -1
  63. package/schematics/ng-add/index.js +1 -1
  64. package/types/_overlay-module-chunk.d.ts +16 -6
  65. package/types/a11y.d.ts +3 -1
  66. package/types/overlay.d.ts +11 -9
@@ -1,5 +1,5 @@
1
1
  import * as i0 from '@angular/core';
2
- import { DOCUMENT, NgZone, inject, Injector, Injectable, RendererFactory2, Component, ChangeDetectionStrategy, ViewEncapsulation, afterNextRender, ElementRef, ApplicationRef, Renderer2, ANIMATION_MODULE_TYPE, EnvironmentInjector, InjectionToken, Directive, EventEmitter, TemplateRef, ViewContainerRef, booleanAttribute, Input, Output, NgModule } from '@angular/core';
2
+ import { DOCUMENT, NgZone, inject, Injector, Injectable, RendererFactory2, Component, ChangeDetectionStrategy, ViewEncapsulation, afterNextRender, ElementRef, InjectionToken, ApplicationRef, Renderer2, ANIMATION_MODULE_TYPE, EnvironmentInjector, Directive, EventEmitter, TemplateRef, ViewContainerRef, booleanAttribute, Input, Output, NgModule } from '@angular/core';
3
3
  import { Location } from '@angular/common';
4
4
  import { Platform } from './_platform-chunk.mjs';
5
5
  import { _getEventTarget } from './_shadow-dom-chunk.mjs';
@@ -288,7 +288,7 @@ class OverlayConfig {
288
288
  maxHeight;
289
289
  direction;
290
290
  disposeOnNavigation = false;
291
- usePopover = false;
291
+ usePopover;
292
292
  constructor(config) {
293
293
  if (config) {
294
294
  const configKeys = Object.keys(config);
@@ -575,7 +575,7 @@ class _CdkOverlayStyleLoader {
575
575
  ngImport: i0,
576
576
  template: '',
577
577
  isInline: true,
578
- styles: [".cdk-overlay-container,.cdk-global-overlay-wrapper{pointer-events:none;top:0;left:0;height:100%;width:100%}.cdk-overlay-container{position:fixed}@layer cdk-overlay{.cdk-overlay-container{z-index:1000}}.cdk-overlay-container:empty{display:none}.cdk-global-overlay-wrapper{display:flex;position:absolute}@layer cdk-overlay{.cdk-global-overlay-wrapper{z-index:1000}}.cdk-overlay-pane{position:absolute;pointer-events:auto;box-sizing:border-box;display:flex;max-width:100%;max-height:100%}@layer cdk-overlay{.cdk-overlay-pane{z-index:1000}}.cdk-overlay-backdrop{position:absolute;top:0;bottom:0;left:0;right:0;pointer-events:auto;-webkit-tap-highlight-color:rgba(0,0,0,0);opacity:0;touch-action:manipulation}@layer cdk-overlay{.cdk-overlay-backdrop{z-index:1000;transition:opacity 400ms cubic-bezier(0.25, 0.8, 0.25, 1)}}@media(prefers-reduced-motion){.cdk-overlay-backdrop{transition-duration:1ms}}.cdk-overlay-backdrop-showing{opacity:1}@media(forced-colors: active){.cdk-overlay-backdrop-showing{opacity:.6}}@layer cdk-overlay{.cdk-overlay-dark-backdrop{background:rgba(0,0,0,.32)}}.cdk-overlay-transparent-backdrop{transition:visibility 1ms linear,opacity 1ms linear;visibility:hidden;opacity:1}.cdk-overlay-transparent-backdrop.cdk-overlay-backdrop-showing,.cdk-high-contrast-active .cdk-overlay-transparent-backdrop{opacity:0;visibility:visible}.cdk-overlay-backdrop-noop-animation{transition:none}.cdk-overlay-connected-position-bounding-box{position:absolute;display:flex;flex-direction:column;min-width:1px;min-height:1px}@layer cdk-overlay{.cdk-overlay-connected-position-bounding-box{z-index:1000}}.cdk-global-scrollblock{position:fixed;width:100%;overflow-y:scroll}.cdk-overlay-popover{background:none;border:none;padding:0;color:inherit;outline:0;overflow:visible;position:fixed;pointer-events:none;width:100%;height:100%;inset:auto}.cdk-overlay-popover::backdrop{display:none}.cdk-overlay-popover .cdk-overlay-backdrop{position:fixed}\n"],
578
+ styles: [".cdk-overlay-container,.cdk-global-overlay-wrapper{pointer-events:none;top:0;left:0;height:100%;width:100%}.cdk-overlay-container{position:fixed}@layer cdk-overlay{.cdk-overlay-container{z-index:1000}}.cdk-overlay-container:empty{display:none}.cdk-global-overlay-wrapper{display:flex;position:absolute}@layer cdk-overlay{.cdk-global-overlay-wrapper{z-index:1000}}.cdk-overlay-pane{position:absolute;pointer-events:auto;box-sizing:border-box;display:flex;max-width:100%;max-height:100%}@layer cdk-overlay{.cdk-overlay-pane{z-index:1000}}.cdk-overlay-backdrop{position:absolute;top:0;bottom:0;left:0;right:0;pointer-events:auto;-webkit-tap-highlight-color:rgba(0,0,0,0);opacity:0;touch-action:manipulation}@layer cdk-overlay{.cdk-overlay-backdrop{z-index:1000;transition:opacity 400ms cubic-bezier(0.25, 0.8, 0.25, 1)}}@media(prefers-reduced-motion){.cdk-overlay-backdrop{transition-duration:1ms}}.cdk-overlay-backdrop-showing{opacity:1}@media(forced-colors: active){.cdk-overlay-backdrop-showing{opacity:.6}}@layer cdk-overlay{.cdk-overlay-dark-backdrop{background:rgba(0,0,0,.32)}}.cdk-overlay-transparent-backdrop{transition:visibility 1ms linear,opacity 1ms linear;visibility:hidden;opacity:1}.cdk-overlay-transparent-backdrop.cdk-overlay-backdrop-showing,.cdk-high-contrast-active .cdk-overlay-transparent-backdrop{opacity:0;visibility:visible}.cdk-overlay-backdrop-noop-animation{transition:none}.cdk-overlay-connected-position-bounding-box{position:absolute;display:flex;flex-direction:column;min-width:1px;min-height:1px}@layer cdk-overlay{.cdk-overlay-connected-position-bounding-box{z-index:1000}}.cdk-global-scrollblock{position:fixed;width:100%;overflow-y:scroll}.cdk-overlay-popover{background:none;border:none;padding:0;outline:0;overflow:visible;position:fixed;pointer-events:none;white-space:normal;color:inherit;text-decoration:none;width:100%;height:100%;inset:auto;top:0;left:0}.cdk-overlay-popover::backdrop{display:none}.cdk-overlay-popover .cdk-overlay-backdrop{position:fixed;z-index:auto}\n"],
579
579
  changeDetection: i0.ChangeDetectionStrategy.OnPush,
580
580
  encapsulation: i0.ViewEncapsulation.None
581
581
  });
@@ -594,7 +594,7 @@ i0.ɵɵngDeclareClassMetadata({
594
594
  host: {
595
595
  'cdk-overlay-style-loader': ''
596
596
  },
597
- styles: [".cdk-overlay-container,.cdk-global-overlay-wrapper{pointer-events:none;top:0;left:0;height:100%;width:100%}.cdk-overlay-container{position:fixed}@layer cdk-overlay{.cdk-overlay-container{z-index:1000}}.cdk-overlay-container:empty{display:none}.cdk-global-overlay-wrapper{display:flex;position:absolute}@layer cdk-overlay{.cdk-global-overlay-wrapper{z-index:1000}}.cdk-overlay-pane{position:absolute;pointer-events:auto;box-sizing:border-box;display:flex;max-width:100%;max-height:100%}@layer cdk-overlay{.cdk-overlay-pane{z-index:1000}}.cdk-overlay-backdrop{position:absolute;top:0;bottom:0;left:0;right:0;pointer-events:auto;-webkit-tap-highlight-color:rgba(0,0,0,0);opacity:0;touch-action:manipulation}@layer cdk-overlay{.cdk-overlay-backdrop{z-index:1000;transition:opacity 400ms cubic-bezier(0.25, 0.8, 0.25, 1)}}@media(prefers-reduced-motion){.cdk-overlay-backdrop{transition-duration:1ms}}.cdk-overlay-backdrop-showing{opacity:1}@media(forced-colors: active){.cdk-overlay-backdrop-showing{opacity:.6}}@layer cdk-overlay{.cdk-overlay-dark-backdrop{background:rgba(0,0,0,.32)}}.cdk-overlay-transparent-backdrop{transition:visibility 1ms linear,opacity 1ms linear;visibility:hidden;opacity:1}.cdk-overlay-transparent-backdrop.cdk-overlay-backdrop-showing,.cdk-high-contrast-active .cdk-overlay-transparent-backdrop{opacity:0;visibility:visible}.cdk-overlay-backdrop-noop-animation{transition:none}.cdk-overlay-connected-position-bounding-box{position:absolute;display:flex;flex-direction:column;min-width:1px;min-height:1px}@layer cdk-overlay{.cdk-overlay-connected-position-bounding-box{z-index:1000}}.cdk-global-scrollblock{position:fixed;width:100%;overflow-y:scroll}.cdk-overlay-popover{background:none;border:none;padding:0;color:inherit;outline:0;overflow:visible;position:fixed;pointer-events:none;width:100%;height:100%;inset:auto}.cdk-overlay-popover::backdrop{display:none}.cdk-overlay-popover .cdk-overlay-backdrop{position:fixed}\n"]
597
+ styles: [".cdk-overlay-container,.cdk-global-overlay-wrapper{pointer-events:none;top:0;left:0;height:100%;width:100%}.cdk-overlay-container{position:fixed}@layer cdk-overlay{.cdk-overlay-container{z-index:1000}}.cdk-overlay-container:empty{display:none}.cdk-global-overlay-wrapper{display:flex;position:absolute}@layer cdk-overlay{.cdk-global-overlay-wrapper{z-index:1000}}.cdk-overlay-pane{position:absolute;pointer-events:auto;box-sizing:border-box;display:flex;max-width:100%;max-height:100%}@layer cdk-overlay{.cdk-overlay-pane{z-index:1000}}.cdk-overlay-backdrop{position:absolute;top:0;bottom:0;left:0;right:0;pointer-events:auto;-webkit-tap-highlight-color:rgba(0,0,0,0);opacity:0;touch-action:manipulation}@layer cdk-overlay{.cdk-overlay-backdrop{z-index:1000;transition:opacity 400ms cubic-bezier(0.25, 0.8, 0.25, 1)}}@media(prefers-reduced-motion){.cdk-overlay-backdrop{transition-duration:1ms}}.cdk-overlay-backdrop-showing{opacity:1}@media(forced-colors: active){.cdk-overlay-backdrop-showing{opacity:.6}}@layer cdk-overlay{.cdk-overlay-dark-backdrop{background:rgba(0,0,0,.32)}}.cdk-overlay-transparent-backdrop{transition:visibility 1ms linear,opacity 1ms linear;visibility:hidden;opacity:1}.cdk-overlay-transparent-backdrop.cdk-overlay-backdrop-showing,.cdk-high-contrast-active .cdk-overlay-transparent-backdrop{opacity:0;visibility:visible}.cdk-overlay-backdrop-noop-animation{transition:none}.cdk-overlay-connected-position-bounding-box{position:absolute;display:flex;flex-direction:column;min-width:1px;min-height:1px}@layer cdk-overlay{.cdk-overlay-connected-position-bounding-box{z-index:1000}}.cdk-global-scrollblock{position:fixed;width:100%;overflow-y:scroll}.cdk-overlay-popover{background:none;border:none;padding:0;outline:0;overflow:visible;position:fixed;pointer-events:none;white-space:normal;color:inherit;text-decoration:none;width:100%;height:100%;inset:auto;top:0;left:0}.cdk-overlay-popover::backdrop{display:none}.cdk-overlay-popover .cdk-overlay-backdrop{position:fixed;z-index:auto}\n"]
598
598
  }]
599
599
  }]
600
600
  });
@@ -940,14 +940,17 @@ class OverlayRef {
940
940
  }
941
941
  _attachHost() {
942
942
  if (!this._host.parentElement) {
943
- if (this._config.usePopover && this._positionStrategy?.getPopoverInsertionPoint) {
944
- this._positionStrategy.getPopoverInsertionPoint().after(this._host);
943
+ const customInsertionPoint = this._config.usePopover ? this._positionStrategy?.getPopoverInsertionPoint?.() : null;
944
+ if (customInsertionPoint) {
945
+ customInsertionPoint.after(this._host);
945
946
  } else {
946
947
  this._previousHostParent?.appendChild(this._host);
947
948
  }
948
949
  }
949
950
  if (this._config.usePopover) {
950
- this._host.showPopover();
951
+ try {
952
+ this._host['showPopover']();
953
+ } catch {}
951
954
  }
952
955
  }
953
956
  _attachBackdrop() {
@@ -1083,6 +1086,7 @@ class FlexibleConnectedPositionStrategy {
1083
1086
  _transformOriginSelector;
1084
1087
  _appliedPanelClasses = [];
1085
1088
  _previousPushAmount;
1089
+ _popoverLocation = 'global';
1086
1090
  positionChanges = this._positionChanges;
1087
1091
  get positions() {
1088
1092
  return this._preferredPositions;
@@ -1279,7 +1283,14 @@ class FlexibleConnectedPositionStrategy {
1279
1283
  this._transformOriginSelector = selector;
1280
1284
  return this;
1281
1285
  }
1286
+ withPopoverLocation(location) {
1287
+ this._popoverLocation = location;
1288
+ return this;
1289
+ }
1282
1290
  getPopoverInsertionPoint() {
1291
+ if (this._popoverLocation === 'global') {
1292
+ return null;
1293
+ }
1283
1294
  const origin = this._origin;
1284
1295
  if (origin instanceof ElementRef) {
1285
1296
  return origin.nativeElement;
@@ -1499,17 +1510,18 @@ class FlexibleConnectedPositionStrategy {
1499
1510
  const styles = {};
1500
1511
  if (this._hasExactPosition()) {
1501
1512
  styles.top = styles.left = '0';
1502
- styles.bottom = styles.right = styles.maxHeight = styles.maxWidth = '';
1513
+ styles.bottom = styles.right = 'auto';
1514
+ styles.maxHeight = styles.maxWidth = '';
1503
1515
  styles.width = styles.height = '100%';
1504
1516
  } else {
1505
1517
  const maxHeight = this._overlayRef.getConfig().maxHeight;
1506
1518
  const maxWidth = this._overlayRef.getConfig().maxWidth;
1507
- styles.height = coerceCssPixelValue(boundingBoxRect.height);
1508
- styles.top = coerceCssPixelValue(boundingBoxRect.top);
1509
- styles.bottom = coerceCssPixelValue(boundingBoxRect.bottom);
1510
1519
  styles.width = coerceCssPixelValue(boundingBoxRect.width);
1511
- styles.left = coerceCssPixelValue(boundingBoxRect.left);
1512
- styles.right = coerceCssPixelValue(boundingBoxRect.right);
1520
+ styles.height = coerceCssPixelValue(boundingBoxRect.height);
1521
+ styles.top = coerceCssPixelValue(boundingBoxRect.top) || 'auto';
1522
+ styles.bottom = coerceCssPixelValue(boundingBoxRect.bottom) || 'auto';
1523
+ styles.left = coerceCssPixelValue(boundingBoxRect.left) || 'auto';
1524
+ styles.right = coerceCssPixelValue(boundingBoxRect.right) || 'auto';
1513
1525
  if (position.overlayX === 'center') {
1514
1526
  styles.alignItems = 'center';
1515
1527
  } else {
@@ -1815,8 +1827,8 @@ const STANDARD_DROPDOWN_ADJACENT_POSITIONS = [{
1815
1827
  }];
1816
1828
 
1817
1829
  const wrapperClass = 'cdk-global-overlay-wrapper';
1818
- function createGlobalPositionStrategy(injector) {
1819
- return new GlobalPositionStrategy(injector);
1830
+ function createGlobalPositionStrategy(_injector) {
1831
+ return new GlobalPositionStrategy();
1820
1832
  }
1821
1833
  class GlobalPositionStrategy {
1822
1834
  _overlayRef;
@@ -1829,10 +1841,6 @@ class GlobalPositionStrategy {
1829
1841
  _width = '';
1830
1842
  _height = '';
1831
1843
  _isDisposed = false;
1832
- _document;
1833
- constructor(injector) {
1834
- this._document = injector?.get(DOCUMENT) || document;
1835
- }
1836
1844
  attach(overlayRef) {
1837
1845
  const config = overlayRef.getConfig();
1838
1846
  this._overlayRef = overlayRef;
@@ -1976,16 +1984,13 @@ class GlobalPositionStrategy {
1976
1984
  this._overlayRef = null;
1977
1985
  this._isDisposed = true;
1978
1986
  }
1979
- getPopoverInsertionPoint() {
1980
- return this._document.body.lastChild;
1981
- }
1982
1987
  }
1983
1988
 
1984
1989
  class OverlayPositionBuilder {
1985
1990
  _injector = inject(Injector);
1986
1991
  constructor() {}
1987
1992
  global() {
1988
- return createGlobalPositionStrategy(this._injector);
1993
+ return createGlobalPositionStrategy();
1989
1994
  }
1990
1995
  flexibleConnectedTo(origin) {
1991
1996
  return createFlexibleConnectedPositionStrategy(this._injector, origin);
@@ -2020,6 +2025,7 @@ i0.ɵɵngDeclareClassMetadata({
2020
2025
  ctorParameters: () => []
2021
2026
  });
2022
2027
 
2028
+ const OVERLAY_DEFAULT_CONFIG = new InjectionToken('OVERLAY_DEFAULT_CONFIG');
2023
2029
  function createOverlayRef(injector, config) {
2024
2030
  injector.get(_CdkPrivateStyleLoader).load(_CdkOverlayStyleLoader);
2025
2031
  const overlayContainer = injector.get(OverlayContainer);
@@ -2031,8 +2037,15 @@ function createOverlayRef(injector, config) {
2031
2037
  optional: true
2032
2038
  }) || injector.get(RendererFactory2).createRenderer(null, null);
2033
2039
  const overlayConfig = new OverlayConfig(config);
2040
+ const defaultUsePopover = injector.get(OVERLAY_DEFAULT_CONFIG, null, {
2041
+ optional: true
2042
+ })?.usePopover ?? true;
2034
2043
  overlayConfig.direction = overlayConfig.direction || directionality.value;
2035
- overlayConfig.usePopover = !!overlayConfig?.usePopover && 'showPopover' in doc.body;
2044
+ if (!('showPopover' in doc.body)) {
2045
+ overlayConfig.usePopover = false;
2046
+ } else {
2047
+ overlayConfig.usePopover = config?.usePopover ?? defaultUsePopover;
2048
+ }
2036
2049
  const pane = doc.createElement('div');
2037
2050
  const host = doc.createElement('div');
2038
2051
  pane.id = idGenerator.getId('cdk-overlay-');
@@ -2042,8 +2055,9 @@ function createOverlayRef(injector, config) {
2042
2055
  host.setAttribute('popover', 'manual');
2043
2056
  host.classList.add('cdk-overlay-popover');
2044
2057
  }
2045
- if (overlayConfig.usePopover && overlayConfig.positionStrategy?.getPopoverInsertionPoint) {
2046
- overlayConfig.positionStrategy.getPopoverInsertionPoint().after(host);
2058
+ const customInsertionPoint = overlayConfig.usePopover ? overlayConfig.positionStrategy?.getPopoverInsertionPoint?.() : null;
2059
+ if (customInsertionPoint) {
2060
+ customInsertionPoint.after(host);
2047
2061
  } else {
2048
2062
  overlayContainer.getContainerElement().appendChild(host);
2049
2063
  }
@@ -2210,7 +2224,7 @@ class CdkConnectedOverlay {
2210
2224
  growAfterOpen = false;
2211
2225
  push = false;
2212
2226
  disposeOnNavigation = false;
2213
- usePopover = false;
2227
+ usePopover;
2214
2228
  matchWidth = false;
2215
2229
  set _config(value) {
2216
2230
  if (typeof value !== 'string') {
@@ -2229,6 +2243,10 @@ class CdkConnectedOverlay {
2229
2243
  const defaultConfig = inject(CDK_CONNECTED_OVERLAY_DEFAULT_CONFIG, {
2230
2244
  optional: true
2231
2245
  });
2246
+ const globalConfig = inject(OVERLAY_DEFAULT_CONFIG, {
2247
+ optional: true
2248
+ });
2249
+ this.usePopover = globalConfig?.usePopover === false ? null : 'global';
2232
2250
  this._templatePortal = new TemplatePortal(templateRef, viewContainerRef);
2233
2251
  this.scrollStrategy = this._scrollStrategyFactory();
2234
2252
  if (defaultConfig) {
@@ -2295,7 +2313,7 @@ class CdkConnectedOverlay {
2295
2313
  scrollStrategy: this.scrollStrategy,
2296
2314
  hasBackdrop: this.hasBackdrop,
2297
2315
  disposeOnNavigation: this.disposeOnNavigation,
2298
- usePopover: this.usePopover
2316
+ usePopover: !!this.usePopover
2299
2317
  });
2300
2318
  if (this.height || this.height === 0) {
2301
2319
  overlayConfig.height = this.height;
@@ -2324,7 +2342,7 @@ class CdkConnectedOverlay {
2324
2342
  offsetY: currentPosition.offsetY || this.offsetY,
2325
2343
  panelClass: currentPosition.panelClass || undefined
2326
2344
  }));
2327
- return positionStrategy.setOrigin(this._getOrigin()).withPositions(positions).withFlexibleDimensions(this.flexibleDimensions).withPush(this.push).withGrowAfterOpen(this.growAfterOpen).withViewportMargin(this.viewportMargin).withLockedPosition(this.lockPosition).withTransformOriginOn(this.transformOriginSelector);
2345
+ return positionStrategy.setOrigin(this._getOrigin()).withPositions(positions).withFlexibleDimensions(this.flexibleDimensions).withPush(this.push).withGrowAfterOpen(this.growAfterOpen).withViewportMargin(this.viewportMargin).withLockedPosition(this.lockPosition).withTransformOriginOn(this.transformOriginSelector).withPopoverLocation(this.usePopover === 'global' ? 'global' : 'inline');
2328
2346
  }
2329
2347
  _createPositionStrategy() {
2330
2348
  const strategy = createFlexibleConnectedPositionStrategy(this._injector, this._getOrigin());
@@ -2452,7 +2470,7 @@ class CdkConnectedOverlay {
2452
2470
  growAfterOpen: ["cdkConnectedOverlayGrowAfterOpen", "growAfterOpen", booleanAttribute],
2453
2471
  push: ["cdkConnectedOverlayPush", "push", booleanAttribute],
2454
2472
  disposeOnNavigation: ["cdkConnectedOverlayDisposeOnNavigation", "disposeOnNavigation", booleanAttribute],
2455
- usePopover: ["cdkConnectedOverlayUsePopover", "usePopover", booleanAttribute],
2473
+ usePopover: ["cdkConnectedOverlayUsePopover", "usePopover"],
2456
2474
  matchWidth: ["cdkConnectedOverlayMatchWidth", "matchWidth", booleanAttribute],
2457
2475
  _config: ["cdkConnectedOverlay", "_config"]
2458
2476
  },
@@ -2592,8 +2610,7 @@ i0.ɵɵngDeclareClassMetadata({
2592
2610
  usePopover: [{
2593
2611
  type: Input,
2594
2612
  args: [{
2595
- alias: 'cdkConnectedOverlayUsePopover',
2596
- transform: booleanAttribute
2613
+ alias: 'cdkConnectedOverlayUsePopover'
2597
2614
  }]
2598
2615
  }],
2599
2616
  matchWidth: [{
@@ -2669,5 +2686,5 @@ i0.ɵɵngDeclareClassMetadata({
2669
2686
  }]
2670
2687
  });
2671
2688
 
2672
- export { BlockScrollStrategy, CDK_CONNECTED_OVERLAY_DEFAULT_CONFIG, CdkConnectedOverlay, CdkOverlayOrigin, CloseScrollStrategy, ConnectedOverlayPositionChange, ConnectionPositionPair, FlexibleConnectedPositionStrategy, GlobalPositionStrategy, NoopScrollStrategy, Overlay, OverlayConfig, OverlayContainer, OverlayKeyboardDispatcher, OverlayModule, OverlayOutsideClickDispatcher, OverlayPositionBuilder, OverlayRef, RepositionScrollStrategy, STANDARD_DROPDOWN_ADJACENT_POSITIONS, STANDARD_DROPDOWN_BELOW_POSITIONS, ScrollStrategyOptions, ScrollingVisibility, createBlockScrollStrategy, createCloseScrollStrategy, createFlexibleConnectedPositionStrategy, createGlobalPositionStrategy, createNoopScrollStrategy, createOverlayRef, createRepositionScrollStrategy, validateHorizontalPosition, validateVerticalPosition };
2689
+ export { BlockScrollStrategy, CDK_CONNECTED_OVERLAY_DEFAULT_CONFIG, CdkConnectedOverlay, CdkOverlayOrigin, CloseScrollStrategy, ConnectedOverlayPositionChange, ConnectionPositionPair, FlexibleConnectedPositionStrategy, GlobalPositionStrategy, NoopScrollStrategy, OVERLAY_DEFAULT_CONFIG, Overlay, OverlayConfig, OverlayContainer, OverlayKeyboardDispatcher, OverlayModule, OverlayOutsideClickDispatcher, OverlayPositionBuilder, OverlayRef, RepositionScrollStrategy, STANDARD_DROPDOWN_ADJACENT_POSITIONS, STANDARD_DROPDOWN_BELOW_POSITIONS, ScrollStrategyOptions, ScrollingVisibility, createBlockScrollStrategy, createCloseScrollStrategy, createFlexibleConnectedPositionStrategy, createGlobalPositionStrategy, createNoopScrollStrategy, createOverlayRef, createRepositionScrollStrategy, validateHorizontalPosition, validateVerticalPosition };
2673
2690
  //# sourceMappingURL=_overlay-module-chunk.mjs.map