@angular/cdk 17.2.0-rc.0 → 17.2.1

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 (131) hide show
  1. package/esm2022/a11y/a11y-module.mjs +4 -4
  2. package/esm2022/a11y/aria-describer/aria-describer.mjs +3 -3
  3. package/esm2022/a11y/focus-monitor/focus-monitor.mjs +6 -6
  4. package/esm2022/a11y/focus-trap/configurable-focus-trap-factory.mjs +3 -3
  5. package/esm2022/a11y/focus-trap/focus-trap-manager.mjs +3 -3
  6. package/esm2022/a11y/focus-trap/focus-trap.mjs +6 -6
  7. package/esm2022/a11y/high-contrast-mode/high-contrast-mode-detector.mjs +3 -3
  8. package/esm2022/a11y/input-modality/input-modality-detector.mjs +3 -3
  9. package/esm2022/a11y/interactivity-checker/interactivity-checker.mjs +3 -3
  10. package/esm2022/a11y/live-announcer/live-announcer.mjs +6 -6
  11. package/esm2022/accordion/accordion-item.mjs +3 -3
  12. package/esm2022/accordion/accordion-module.mjs +4 -4
  13. package/esm2022/accordion/accordion.mjs +3 -3
  14. package/esm2022/bidi/bidi-module.mjs +4 -4
  15. package/esm2022/bidi/dir.mjs +3 -3
  16. package/esm2022/bidi/directionality.mjs +3 -3
  17. package/esm2022/clipboard/clipboard-module.mjs +4 -4
  18. package/esm2022/clipboard/clipboard.mjs +3 -3
  19. package/esm2022/clipboard/copy-to-clipboard.mjs +3 -3
  20. package/esm2022/collections/unique-selection-dispatcher.mjs +3 -3
  21. package/esm2022/dialog/dialog-container.mjs +3 -3
  22. package/esm2022/dialog/dialog-module.mjs +4 -4
  23. package/esm2022/dialog/dialog.mjs +3 -3
  24. package/esm2022/drag-drop/directives/drag-handle.mjs +3 -3
  25. package/esm2022/drag-drop/directives/drag-placeholder.mjs +3 -3
  26. package/esm2022/drag-drop/directives/drag-preview.mjs +3 -3
  27. package/esm2022/drag-drop/directives/drag.mjs +3 -3
  28. package/esm2022/drag-drop/directives/drop-list-group.mjs +3 -3
  29. package/esm2022/drag-drop/directives/drop-list.mjs +3 -3
  30. package/esm2022/drag-drop/drag-drop-module.mjs +4 -4
  31. package/esm2022/drag-drop/drag-drop-registry.mjs +3 -3
  32. package/esm2022/drag-drop/drag-drop.mjs +3 -3
  33. package/esm2022/layout/breakpoints-observer.mjs +3 -3
  34. package/esm2022/layout/layout-module.mjs +4 -4
  35. package/esm2022/layout/media-matcher.mjs +3 -3
  36. package/esm2022/listbox/listbox-module.mjs +4 -4
  37. package/esm2022/listbox/listbox.mjs +16 -7
  38. package/esm2022/menu/context-menu-trigger.mjs +6 -6
  39. package/esm2022/menu/menu-aim.mjs +6 -6
  40. package/esm2022/menu/menu-bar.mjs +3 -3
  41. package/esm2022/menu/menu-base.mjs +3 -3
  42. package/esm2022/menu/menu-group.mjs +3 -3
  43. package/esm2022/menu/menu-item-checkbox.mjs +3 -3
  44. package/esm2022/menu/menu-item-radio.mjs +3 -3
  45. package/esm2022/menu/menu-item-selectable.mjs +3 -3
  46. package/esm2022/menu/menu-item.mjs +3 -3
  47. package/esm2022/menu/menu-module.mjs +4 -4
  48. package/esm2022/menu/menu-stack.mjs +3 -3
  49. package/esm2022/menu/menu-trigger-base.mjs +3 -3
  50. package/esm2022/menu/menu-trigger.mjs +3 -3
  51. package/esm2022/menu/menu.mjs +3 -3
  52. package/esm2022/observers/observe-content.mjs +13 -13
  53. package/esm2022/observers/private/shared-resize-observer.mjs +3 -3
  54. package/esm2022/overlay/dispatchers/base-overlay-dispatcher.mjs +3 -3
  55. package/esm2022/overlay/dispatchers/overlay-keyboard-dispatcher.mjs +3 -3
  56. package/esm2022/overlay/dispatchers/overlay-outside-click-dispatcher.mjs +3 -3
  57. package/esm2022/overlay/fullscreen-overlay-container.mjs +3 -3
  58. package/esm2022/overlay/overlay-container.mjs +3 -3
  59. package/esm2022/overlay/overlay-directives.mjs +10 -9
  60. package/esm2022/overlay/overlay-module.mjs +4 -4
  61. package/esm2022/overlay/overlay.mjs +3 -3
  62. package/esm2022/overlay/position/flexible-connected-position-strategy.mjs +23 -6
  63. package/esm2022/overlay/position/overlay-position-builder.mjs +3 -3
  64. package/esm2022/overlay/scroll/scroll-strategy-options.mjs +3 -3
  65. package/esm2022/platform/platform-module.mjs +4 -4
  66. package/esm2022/platform/platform.mjs +3 -3
  67. package/esm2022/portal/portal-directives.mjs +16 -16
  68. package/esm2022/scrolling/fixed-size-virtual-scroll.mjs +3 -3
  69. package/esm2022/scrolling/scroll-dispatcher.mjs +3 -3
  70. package/esm2022/scrolling/scrollable.mjs +3 -3
  71. package/esm2022/scrolling/scrolling-module.mjs +8 -8
  72. package/esm2022/scrolling/viewport-ruler.mjs +3 -3
  73. package/esm2022/scrolling/virtual-for-of.mjs +3 -3
  74. package/esm2022/scrolling/virtual-scroll-viewport.mjs +3 -3
  75. package/esm2022/scrolling/virtual-scrollable-element.mjs +3 -3
  76. package/esm2022/scrolling/virtual-scrollable-window.mjs +3 -3
  77. package/esm2022/scrolling/virtual-scrollable.mjs +3 -3
  78. package/esm2022/stepper/step-header.mjs +3 -3
  79. package/esm2022/stepper/step-label.mjs +3 -3
  80. package/esm2022/stepper/stepper-button.mjs +6 -6
  81. package/esm2022/stepper/stepper-module.mjs +4 -4
  82. package/esm2022/stepper/stepper.mjs +6 -6
  83. package/esm2022/table/cell.mjs +21 -21
  84. package/esm2022/table/coalesced-style-scheduler.mjs +3 -3
  85. package/esm2022/table/row.mjs +27 -27
  86. package/esm2022/table/sticky-styler.mjs +8 -6
  87. package/esm2022/table/table-module.mjs +4 -4
  88. package/esm2022/table/table.mjs +37 -24
  89. package/esm2022/table/text-column.mjs +3 -3
  90. package/esm2022/text-field/autofill.mjs +6 -6
  91. package/esm2022/text-field/autosize.mjs +3 -3
  92. package/esm2022/text-field/text-field-module.mjs +4 -4
  93. package/esm2022/tree/nested-node.mjs +3 -3
  94. package/esm2022/tree/node.mjs +3 -3
  95. package/esm2022/tree/outlet.mjs +3 -3
  96. package/esm2022/tree/padding.mjs +3 -3
  97. package/esm2022/tree/toggle.mjs +3 -3
  98. package/esm2022/tree/tree-module.mjs +4 -4
  99. package/esm2022/tree/tree.mjs +6 -6
  100. package/esm2022/version.mjs +1 -1
  101. package/fesm2022/a11y.mjs +40 -40
  102. package/fesm2022/accordion.mjs +10 -10
  103. package/fesm2022/bidi.mjs +10 -10
  104. package/fesm2022/cdk.mjs +1 -1
  105. package/fesm2022/cdk.mjs.map +1 -1
  106. package/fesm2022/clipboard.mjs +10 -10
  107. package/fesm2022/collections.mjs +3 -3
  108. package/fesm2022/dialog.mjs +10 -10
  109. package/fesm2022/drag-drop.mjs +28 -28
  110. package/fesm2022/layout.mjs +10 -10
  111. package/fesm2022/listbox.mjs +19 -10
  112. package/fesm2022/listbox.mjs.map +1 -1
  113. package/fesm2022/menu.mjs +49 -49
  114. package/fesm2022/observers/private.mjs +3 -3
  115. package/fesm2022/observers.mjs +13 -13
  116. package/fesm2022/overlay.mjs +59 -41
  117. package/fesm2022/overlay.mjs.map +1 -1
  118. package/fesm2022/platform.mjs +7 -7
  119. package/fesm2022/portal.mjs +16 -16
  120. package/fesm2022/scrolling.mjs +35 -35
  121. package/fesm2022/stepper.mjs +22 -22
  122. package/fesm2022/table.mjs +101 -86
  123. package/fesm2022/table.mjs.map +1 -1
  124. package/fesm2022/text-field.mjs +13 -13
  125. package/fesm2022/tree.mjs +25 -25
  126. package/listbox/index.d.ts +1 -1
  127. package/overlay/index.d.ts +3 -0
  128. package/package.json +3 -3
  129. package/schematics/ng-add/index.js +1 -1
  130. package/schematics/ng-add/index.mjs +1 -1
  131. package/table/index.d.ts +8 -2
@@ -12,10 +12,10 @@ class MutationObserverFactory {
12
12
  create(callback) {
13
13
  return typeof MutationObserver === 'undefined' ? null : new MutationObserver(callback);
14
14
  }
15
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.1", ngImport: i0, type: MutationObserverFactory, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
16
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.1.1", ngImport: i0, type: MutationObserverFactory, providedIn: 'root' }); }
15
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.0", ngImport: i0, type: MutationObserverFactory, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
16
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.2.0", ngImport: i0, type: MutationObserverFactory, providedIn: 'root' }); }
17
17
  }
18
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.1", ngImport: i0, type: MutationObserverFactory, decorators: [{
18
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.0", ngImport: i0, type: MutationObserverFactory, decorators: [{
19
19
  type: Injectable,
20
20
  args: [{ providedIn: 'root' }]
21
21
  }] });
@@ -85,10 +85,10 @@ class ContentObserver {
85
85
  this._observedElements.delete(element);
86
86
  }
87
87
  }
88
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.1", ngImport: i0, type: ContentObserver, deps: [{ token: MutationObserverFactory }], target: i0.ɵɵFactoryTarget.Injectable }); }
89
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.1.1", ngImport: i0, type: ContentObserver, providedIn: 'root' }); }
88
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.0", ngImport: i0, type: ContentObserver, deps: [{ token: MutationObserverFactory }], target: i0.ɵɵFactoryTarget.Injectable }); }
89
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.2.0", ngImport: i0, type: ContentObserver, providedIn: 'root' }); }
90
90
  }
91
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.1", ngImport: i0, type: ContentObserver, decorators: [{
91
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.0", ngImport: i0, type: ContentObserver, decorators: [{
92
92
  type: Injectable,
93
93
  args: [{ providedIn: 'root' }]
94
94
  }], ctorParameters: () => [{ type: MutationObserverFactory }] });
@@ -147,10 +147,10 @@ class CdkObserveContent {
147
147
  _unsubscribe() {
148
148
  this._currentSubscription?.unsubscribe();
149
149
  }
150
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.1", ngImport: i0, type: CdkObserveContent, deps: [{ token: ContentObserver }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Directive }); }
151
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "17.1.1", type: CdkObserveContent, isStandalone: true, selector: "[cdkObserveContent]", inputs: { disabled: ["cdkObserveContentDisabled", "disabled", booleanAttribute], debounce: "debounce" }, outputs: { event: "cdkObserveContent" }, exportAs: ["cdkObserveContent"], ngImport: i0 }); }
150
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.0", ngImport: i0, type: CdkObserveContent, deps: [{ token: ContentObserver }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Directive }); }
151
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "17.2.0", type: CdkObserveContent, isStandalone: true, selector: "[cdkObserveContent]", inputs: { disabled: ["cdkObserveContentDisabled", "disabled", booleanAttribute], debounce: "debounce" }, outputs: { event: "cdkObserveContent" }, exportAs: ["cdkObserveContent"], ngImport: i0 }); }
152
152
  }
153
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.1", ngImport: i0, type: CdkObserveContent, decorators: [{
153
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.0", ngImport: i0, type: CdkObserveContent, decorators: [{
154
154
  type: Directive,
155
155
  args: [{
156
156
  selector: '[cdkObserveContent]',
@@ -167,11 +167,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.1", ngImpor
167
167
  type: Input
168
168
  }] } });
169
169
  class ObserversModule {
170
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.1", ngImport: i0, type: ObserversModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
171
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.1.1", ngImport: i0, type: ObserversModule, imports: [CdkObserveContent], exports: [CdkObserveContent] }); }
172
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.1.1", ngImport: i0, type: ObserversModule, providers: [MutationObserverFactory] }); }
170
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.0", ngImport: i0, type: ObserversModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
171
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.2.0", ngImport: i0, type: ObserversModule, imports: [CdkObserveContent], exports: [CdkObserveContent] }); }
172
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.2.0", ngImport: i0, type: ObserversModule, providers: [MutationObserverFactory] }); }
173
173
  }
174
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.1", ngImport: i0, type: ObserversModule, decorators: [{
174
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.0", ngImport: i0, type: ObserversModule, decorators: [{
175
175
  type: NgModule,
176
176
  args: [{
177
177
  imports: [CdkObserveContent],
@@ -4,7 +4,7 @@ export { CdkScrollable, ScrollDispatcher, ViewportRuler } from '@angular/cdk/scr
4
4
  import * as i6 from '@angular/common';
5
5
  import { DOCUMENT } from '@angular/common';
6
6
  import * as i0 from '@angular/core';
7
- import { Injectable, Inject, Optional, ElementRef, ApplicationRef, ANIMATION_MODULE_TYPE, InjectionToken, inject, Directive, EventEmitter, booleanAttribute, Input, Output, NgModule } from '@angular/core';
7
+ import { Injectable, Inject, Optional, ElementRef, ApplicationRef, ANIMATION_MODULE_TYPE, InjectionToken, inject, Directive, NgZone, EventEmitter, booleanAttribute, Input, Output, NgModule } from '@angular/core';
8
8
  import { coerceCssPixelValue, coerceArray } from '@angular/cdk/coercion';
9
9
  import * as i1$1 from '@angular/cdk/platform';
10
10
  import { supportsScrollBehavior, _getEventTarget, _isTestEnvironment } from '@angular/cdk/platform';
@@ -279,10 +279,10 @@ class ScrollStrategyOptions {
279
279
  this.reposition = (config) => new RepositionScrollStrategy(this._scrollDispatcher, this._viewportRuler, this._ngZone, config);
280
280
  this._document = document;
281
281
  }
282
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.1", ngImport: i0, type: ScrollStrategyOptions, deps: [{ token: i1.ScrollDispatcher }, { token: i1.ViewportRuler }, { token: i0.NgZone }, { token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Injectable }); }
283
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.1.1", ngImport: i0, type: ScrollStrategyOptions, providedIn: 'root' }); }
282
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.0", ngImport: i0, type: ScrollStrategyOptions, deps: [{ token: i1.ScrollDispatcher }, { token: i1.ViewportRuler }, { token: i0.NgZone }, { token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Injectable }); }
283
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.2.0", ngImport: i0, type: ScrollStrategyOptions, providedIn: 'root' }); }
284
284
  }
285
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.1", ngImport: i0, type: ScrollStrategyOptions, decorators: [{
285
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.0", ngImport: i0, type: ScrollStrategyOptions, decorators: [{
286
286
  type: Injectable,
287
287
  args: [{ providedIn: 'root' }]
288
288
  }], ctorParameters: () => [{ type: i1.ScrollDispatcher }, { type: i1.ViewportRuler }, { type: i0.NgZone }, { type: undefined, decorators: [{
@@ -439,10 +439,10 @@ class BaseOverlayDispatcher {
439
439
  this.detach();
440
440
  }
441
441
  }
442
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.1", ngImport: i0, type: BaseOverlayDispatcher, deps: [{ token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Injectable }); }
443
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.1.1", ngImport: i0, type: BaseOverlayDispatcher, providedIn: 'root' }); }
442
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.0", ngImport: i0, type: BaseOverlayDispatcher, deps: [{ token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Injectable }); }
443
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.2.0", ngImport: i0, type: BaseOverlayDispatcher, providedIn: 'root' }); }
444
444
  }
445
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.1", ngImport: i0, type: BaseOverlayDispatcher, decorators: [{
445
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.0", ngImport: i0, type: BaseOverlayDispatcher, decorators: [{
446
446
  type: Injectable,
447
447
  args: [{ providedIn: 'root' }]
448
448
  }], ctorParameters: () => [{ type: undefined, decorators: [{
@@ -507,10 +507,10 @@ class OverlayKeyboardDispatcher extends BaseOverlayDispatcher {
507
507
  this._isAttached = false;
508
508
  }
509
509
  }
510
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.1", ngImport: i0, type: OverlayKeyboardDispatcher, deps: [{ token: DOCUMENT }, { token: i0.NgZone, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }
511
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.1.1", ngImport: i0, type: OverlayKeyboardDispatcher, providedIn: 'root' }); }
510
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.0", ngImport: i0, type: OverlayKeyboardDispatcher, deps: [{ token: DOCUMENT }, { token: i0.NgZone, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }
511
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.2.0", ngImport: i0, type: OverlayKeyboardDispatcher, providedIn: 'root' }); }
512
512
  }
513
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.1", ngImport: i0, type: OverlayKeyboardDispatcher, decorators: [{
513
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.0", ngImport: i0, type: OverlayKeyboardDispatcher, decorators: [{
514
514
  type: Injectable,
515
515
  args: [{ providedIn: 'root' }]
516
516
  }], ctorParameters: () => [{ type: undefined, decorators: [{
@@ -632,10 +632,10 @@ class OverlayOutsideClickDispatcher extends BaseOverlayDispatcher {
632
632
  body.addEventListener('auxclick', this._clickListener, true);
633
633
  body.addEventListener('contextmenu', this._clickListener, true);
634
634
  }
635
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.1", ngImport: i0, type: OverlayOutsideClickDispatcher, deps: [{ token: DOCUMENT }, { token: i1$1.Platform }, { token: i0.NgZone, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }
636
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.1.1", ngImport: i0, type: OverlayOutsideClickDispatcher, providedIn: 'root' }); }
635
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.0", ngImport: i0, type: OverlayOutsideClickDispatcher, deps: [{ token: DOCUMENT }, { token: i1$1.Platform }, { token: i0.NgZone, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }
636
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.2.0", ngImport: i0, type: OverlayOutsideClickDispatcher, providedIn: 'root' }); }
637
637
  }
638
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.1", ngImport: i0, type: OverlayOutsideClickDispatcher, decorators: [{
638
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.0", ngImport: i0, type: OverlayOutsideClickDispatcher, decorators: [{
639
639
  type: Injectable,
640
640
  args: [{ providedIn: 'root' }]
641
641
  }], ctorParameters: () => [{ type: undefined, decorators: [{
@@ -703,10 +703,10 @@ class OverlayContainer {
703
703
  this._document.body.appendChild(container);
704
704
  this._containerElement = container;
705
705
  }
706
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.1", ngImport: i0, type: OverlayContainer, deps: [{ token: DOCUMENT }, { token: i1$1.Platform }], target: i0.ɵɵFactoryTarget.Injectable }); }
707
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.1.1", ngImport: i0, type: OverlayContainer, providedIn: 'root' }); }
706
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.0", ngImport: i0, type: OverlayContainer, deps: [{ token: DOCUMENT }, { token: i1$1.Platform }], target: i0.ɵɵFactoryTarget.Injectable }); }
707
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.2.0", ngImport: i0, type: OverlayContainer, providedIn: 'root' }); }
708
708
  }
709
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.1", ngImport: i0, type: OverlayContainer, decorators: [{
709
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.0", ngImport: i0, type: OverlayContainer, decorators: [{
710
710
  type: Injectable,
711
711
  args: [{ providedIn: 'root' }]
712
712
  }], ctorParameters: () => [{ type: undefined, decorators: [{
@@ -1655,16 +1655,23 @@ class FlexibleConnectedPositionStrategy {
1655
1655
  if (position.panelClass) {
1656
1656
  this._addPanelClasses(position.panelClass);
1657
1657
  }
1658
- // Save the last connected position in case the position needs to be re-calculated.
1659
- this._lastPosition = position;
1660
1658
  // Notify that the position has been changed along with its change properties.
1661
1659
  // We only emit if we've got any subscriptions, because the scroll visibility
1662
1660
  // calculations can be somewhat expensive.
1663
1661
  if (this._positionChanges.observers.length) {
1664
- const scrollableViewProperties = this._getScrollVisibility();
1665
- const changeEvent = new ConnectedOverlayPositionChange(position, scrollableViewProperties);
1666
- this._positionChanges.next(changeEvent);
1662
+ const scrollVisibility = this._getScrollVisibility();
1663
+ // We're recalculating on scroll, but we only want to emit if anything
1664
+ // changed since downstream code might be hitting the `NgZone`.
1665
+ if (position !== this._lastPosition ||
1666
+ !this._lastScrollVisibility ||
1667
+ !compareScrollVisibility(this._lastScrollVisibility, scrollVisibility)) {
1668
+ const changeEvent = new ConnectedOverlayPositionChange(position, scrollVisibility);
1669
+ this._positionChanges.next(changeEvent);
1670
+ }
1671
+ this._lastScrollVisibility = scrollVisibility;
1667
1672
  }
1673
+ // Save the last connected position in case the position needs to be re-calculated.
1674
+ this._lastPosition = position;
1668
1675
  this._isInitialRender = false;
1669
1676
  }
1670
1677
  /** Sets the transform origin based on the configured selector and the passed-in position. */
@@ -2091,6 +2098,16 @@ function getRoundedBoundingClientRect(clientRect) {
2091
2098
  height: Math.floor(clientRect.height),
2092
2099
  };
2093
2100
  }
2101
+ /** Returns whether two `ScrollingVisibility` objects are identical. */
2102
+ function compareScrollVisibility(a, b) {
2103
+ if (a === b) {
2104
+ return true;
2105
+ }
2106
+ return (a.isOriginClipped === b.isOriginClipped &&
2107
+ a.isOriginOutsideView === b.isOriginOutsideView &&
2108
+ a.isOverlayClipped === b.isOverlayClipped &&
2109
+ a.isOverlayOutsideView === b.isOverlayOutsideView);
2110
+ }
2094
2111
  const STANDARD_DROPDOWN_BELOW_POSITIONS = [
2095
2112
  { originX: 'start', originY: 'bottom', overlayX: 'start', overlayY: 'top' },
2096
2113
  { originX: 'start', originY: 'top', overlayX: 'start', overlayY: 'bottom' },
@@ -2355,10 +2372,10 @@ class OverlayPositionBuilder {
2355
2372
  flexibleConnectedTo(origin) {
2356
2373
  return new FlexibleConnectedPositionStrategy(origin, this._viewportRuler, this._document, this._platform, this._overlayContainer);
2357
2374
  }
2358
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.1", ngImport: i0, type: OverlayPositionBuilder, deps: [{ token: i1.ViewportRuler }, { token: DOCUMENT }, { token: i1$1.Platform }, { token: OverlayContainer }], target: i0.ɵɵFactoryTarget.Injectable }); }
2359
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.1.1", ngImport: i0, type: OverlayPositionBuilder, providedIn: 'root' }); }
2375
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.0", ngImport: i0, type: OverlayPositionBuilder, deps: [{ token: i1.ViewportRuler }, { token: DOCUMENT }, { token: i1$1.Platform }, { token: OverlayContainer }], target: i0.ɵɵFactoryTarget.Injectable }); }
2376
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.2.0", ngImport: i0, type: OverlayPositionBuilder, providedIn: 'root' }); }
2360
2377
  }
2361
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.1", ngImport: i0, type: OverlayPositionBuilder, decorators: [{
2378
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.0", ngImport: i0, type: OverlayPositionBuilder, decorators: [{
2362
2379
  type: Injectable,
2363
2380
  args: [{ providedIn: 'root' }]
2364
2381
  }], ctorParameters: () => [{ type: i1.ViewportRuler }, { type: undefined, decorators: [{
@@ -2450,10 +2467,10 @@ class Overlay {
2450
2467
  }
2451
2468
  return new DomPortalOutlet(pane, this._componentFactoryResolver, this._appRef, this._injector, this._document);
2452
2469
  }
2453
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.1", ngImport: i0, type: Overlay, deps: [{ token: ScrollStrategyOptions }, { token: OverlayContainer }, { token: i0.ComponentFactoryResolver }, { token: OverlayPositionBuilder }, { token: OverlayKeyboardDispatcher }, { token: i0.Injector }, { token: i0.NgZone }, { token: DOCUMENT }, { token: i5.Directionality }, { token: i6.Location }, { token: OverlayOutsideClickDispatcher }, { token: ANIMATION_MODULE_TYPE, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }
2454
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.1.1", ngImport: i0, type: Overlay, providedIn: 'root' }); }
2470
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.0", ngImport: i0, type: Overlay, deps: [{ token: ScrollStrategyOptions }, { token: OverlayContainer }, { token: i0.ComponentFactoryResolver }, { token: OverlayPositionBuilder }, { token: OverlayKeyboardDispatcher }, { token: i0.Injector }, { token: i0.NgZone }, { token: DOCUMENT }, { token: i5.Directionality }, { token: i6.Location }, { token: OverlayOutsideClickDispatcher }, { token: ANIMATION_MODULE_TYPE, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }
2471
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.2.0", ngImport: i0, type: Overlay, providedIn: 'root' }); }
2455
2472
  }
2456
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.1", ngImport: i0, type: Overlay, decorators: [{
2473
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.0", ngImport: i0, type: Overlay, decorators: [{
2457
2474
  type: Injectable,
2458
2475
  args: [{ providedIn: 'root' }]
2459
2476
  }], ctorParameters: () => [{ type: ScrollStrategyOptions }, { type: OverlayContainer }, { type: i0.ComponentFactoryResolver }, { type: OverlayPositionBuilder }, { type: OverlayKeyboardDispatcher }, { type: i0.Injector }, { type: i0.NgZone }, { type: undefined, decorators: [{
@@ -2511,10 +2528,10 @@ class CdkOverlayOrigin {
2511
2528
  elementRef) {
2512
2529
  this.elementRef = elementRef;
2513
2530
  }
2514
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.1", ngImport: i0, type: CdkOverlayOrigin, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }
2515
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.1.1", type: CdkOverlayOrigin, isStandalone: true, selector: "[cdk-overlay-origin], [overlay-origin], [cdkOverlayOrigin]", exportAs: ["cdkOverlayOrigin"], ngImport: i0 }); }
2531
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.0", ngImport: i0, type: CdkOverlayOrigin, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }
2532
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.2.0", type: CdkOverlayOrigin, isStandalone: true, selector: "[cdk-overlay-origin], [overlay-origin], [cdkOverlayOrigin]", exportAs: ["cdkOverlayOrigin"], ngImport: i0 }); }
2516
2533
  }
2517
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.1", ngImport: i0, type: CdkOverlayOrigin, decorators: [{
2534
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.0", ngImport: i0, type: CdkOverlayOrigin, decorators: [{
2518
2535
  type: Directive,
2519
2536
  args: [{
2520
2537
  selector: '[cdk-overlay-origin], [overlay-origin], [cdkOverlayOrigin]',
@@ -2563,6 +2580,7 @@ class CdkConnectedOverlay {
2563
2580
  this._detachSubscription = Subscription.EMPTY;
2564
2581
  this._positionSubscription = Subscription.EMPTY;
2565
2582
  this._disposeOnNavigation = false;
2583
+ this._ngZone = inject(NgZone);
2566
2584
  /** Margin between the overlay and the viewport edges. */
2567
2585
  this.viewportMargin = 0;
2568
2586
  /** Whether the overlay is open. */
@@ -2743,7 +2761,7 @@ class CdkConnectedOverlay {
2743
2761
  this._positionSubscription = this._position.positionChanges
2744
2762
  .pipe(takeWhile(() => this.positionChange.observers.length > 0))
2745
2763
  .subscribe(position => {
2746
- this.positionChange.emit(position);
2764
+ this._ngZone.run(() => this.positionChange.emit(position));
2747
2765
  if (this.positionChange.observers.length === 0) {
2748
2766
  this._positionSubscription.unsubscribe();
2749
2767
  }
@@ -2758,10 +2776,10 @@ class CdkConnectedOverlay {
2758
2776
  this._backdropSubscription.unsubscribe();
2759
2777
  this._positionSubscription.unsubscribe();
2760
2778
  }
2761
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.1", ngImport: i0, type: CdkConnectedOverlay, deps: [{ token: Overlay }, { token: i0.TemplateRef }, { token: i0.ViewContainerRef }, { token: CDK_CONNECTED_OVERLAY_SCROLL_STRATEGY }, { token: i5.Directionality, optional: true }], target: i0.ɵɵFactoryTarget.Directive }); }
2762
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "17.1.1", type: CdkConnectedOverlay, isStandalone: true, selector: "[cdk-connected-overlay], [connected-overlay], [cdkConnectedOverlay]", inputs: { origin: ["cdkConnectedOverlayOrigin", "origin"], positions: ["cdkConnectedOverlayPositions", "positions"], positionStrategy: ["cdkConnectedOverlayPositionStrategy", "positionStrategy"], offsetX: ["cdkConnectedOverlayOffsetX", "offsetX"], offsetY: ["cdkConnectedOverlayOffsetY", "offsetY"], width: ["cdkConnectedOverlayWidth", "width"], height: ["cdkConnectedOverlayHeight", "height"], minWidth: ["cdkConnectedOverlayMinWidth", "minWidth"], minHeight: ["cdkConnectedOverlayMinHeight", "minHeight"], backdropClass: ["cdkConnectedOverlayBackdropClass", "backdropClass"], panelClass: ["cdkConnectedOverlayPanelClass", "panelClass"], viewportMargin: ["cdkConnectedOverlayViewportMargin", "viewportMargin"], scrollStrategy: ["cdkConnectedOverlayScrollStrategy", "scrollStrategy"], open: ["cdkConnectedOverlayOpen", "open"], disableClose: ["cdkConnectedOverlayDisableClose", "disableClose"], transformOriginSelector: ["cdkConnectedOverlayTransformOriginOn", "transformOriginSelector"], hasBackdrop: ["cdkConnectedOverlayHasBackdrop", "hasBackdrop", booleanAttribute], lockPosition: ["cdkConnectedOverlayLockPosition", "lockPosition", booleanAttribute], flexibleDimensions: ["cdkConnectedOverlayFlexibleDimensions", "flexibleDimensions", booleanAttribute], growAfterOpen: ["cdkConnectedOverlayGrowAfterOpen", "growAfterOpen", booleanAttribute], push: ["cdkConnectedOverlayPush", "push", booleanAttribute], disposeOnNavigation: ["cdkConnectedOverlayDisposeOnNavigation", "disposeOnNavigation", booleanAttribute] }, outputs: { backdropClick: "backdropClick", positionChange: "positionChange", attach: "attach", detach: "detach", overlayKeydown: "overlayKeydown", overlayOutsideClick: "overlayOutsideClick" }, exportAs: ["cdkConnectedOverlay"], usesOnChanges: true, ngImport: i0 }); }
2779
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.0", ngImport: i0, type: CdkConnectedOverlay, deps: [{ token: Overlay }, { token: i0.TemplateRef }, { token: i0.ViewContainerRef }, { token: CDK_CONNECTED_OVERLAY_SCROLL_STRATEGY }, { token: i5.Directionality, optional: true }], target: i0.ɵɵFactoryTarget.Directive }); }
2780
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "17.2.0", type: CdkConnectedOverlay, isStandalone: true, selector: "[cdk-connected-overlay], [connected-overlay], [cdkConnectedOverlay]", inputs: { origin: ["cdkConnectedOverlayOrigin", "origin"], positions: ["cdkConnectedOverlayPositions", "positions"], positionStrategy: ["cdkConnectedOverlayPositionStrategy", "positionStrategy"], offsetX: ["cdkConnectedOverlayOffsetX", "offsetX"], offsetY: ["cdkConnectedOverlayOffsetY", "offsetY"], width: ["cdkConnectedOverlayWidth", "width"], height: ["cdkConnectedOverlayHeight", "height"], minWidth: ["cdkConnectedOverlayMinWidth", "minWidth"], minHeight: ["cdkConnectedOverlayMinHeight", "minHeight"], backdropClass: ["cdkConnectedOverlayBackdropClass", "backdropClass"], panelClass: ["cdkConnectedOverlayPanelClass", "panelClass"], viewportMargin: ["cdkConnectedOverlayViewportMargin", "viewportMargin"], scrollStrategy: ["cdkConnectedOverlayScrollStrategy", "scrollStrategy"], open: ["cdkConnectedOverlayOpen", "open"], disableClose: ["cdkConnectedOverlayDisableClose", "disableClose"], transformOriginSelector: ["cdkConnectedOverlayTransformOriginOn", "transformOriginSelector"], hasBackdrop: ["cdkConnectedOverlayHasBackdrop", "hasBackdrop", booleanAttribute], lockPosition: ["cdkConnectedOverlayLockPosition", "lockPosition", booleanAttribute], flexibleDimensions: ["cdkConnectedOverlayFlexibleDimensions", "flexibleDimensions", booleanAttribute], growAfterOpen: ["cdkConnectedOverlayGrowAfterOpen", "growAfterOpen", booleanAttribute], push: ["cdkConnectedOverlayPush", "push", booleanAttribute], disposeOnNavigation: ["cdkConnectedOverlayDisposeOnNavigation", "disposeOnNavigation", booleanAttribute] }, outputs: { backdropClick: "backdropClick", positionChange: "positionChange", attach: "attach", detach: "detach", overlayKeydown: "overlayKeydown", overlayOutsideClick: "overlayOutsideClick" }, exportAs: ["cdkConnectedOverlay"], usesOnChanges: true, ngImport: i0 }); }
2763
2781
  }
2764
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.1", ngImport: i0, type: CdkConnectedOverlay, decorators: [{
2782
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.0", ngImport: i0, type: CdkConnectedOverlay, decorators: [{
2765
2783
  type: Directive,
2766
2784
  args: [{
2767
2785
  selector: '[cdk-connected-overlay], [connected-overlay], [cdkConnectedOverlay]',
@@ -2864,11 +2882,11 @@ const CDK_CONNECTED_OVERLAY_SCROLL_STRATEGY_PROVIDER = {
2864
2882
  };
2865
2883
 
2866
2884
  class OverlayModule {
2867
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.1", ngImport: i0, type: OverlayModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
2868
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.1.1", ngImport: i0, type: OverlayModule, imports: [BidiModule, PortalModule, ScrollingModule, CdkConnectedOverlay, CdkOverlayOrigin], exports: [CdkConnectedOverlay, CdkOverlayOrigin, ScrollingModule] }); }
2869
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.1.1", ngImport: i0, type: OverlayModule, providers: [Overlay, CDK_CONNECTED_OVERLAY_SCROLL_STRATEGY_PROVIDER], imports: [BidiModule, PortalModule, ScrollingModule, ScrollingModule] }); }
2885
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.0", ngImport: i0, type: OverlayModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
2886
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.2.0", ngImport: i0, type: OverlayModule, imports: [BidiModule, PortalModule, ScrollingModule, CdkConnectedOverlay, CdkOverlayOrigin], exports: [CdkConnectedOverlay, CdkOverlayOrigin, ScrollingModule] }); }
2887
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.2.0", ngImport: i0, type: OverlayModule, providers: [Overlay, CDK_CONNECTED_OVERLAY_SCROLL_STRATEGY_PROVIDER], imports: [BidiModule, PortalModule, ScrollingModule, ScrollingModule] }); }
2870
2888
  }
2871
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.1", ngImport: i0, type: OverlayModule, decorators: [{
2889
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.0", ngImport: i0, type: OverlayModule, decorators: [{
2872
2890
  type: NgModule,
2873
2891
  args: [{
2874
2892
  imports: [BidiModule, PortalModule, ScrollingModule, CdkConnectedOverlay, CdkOverlayOrigin],
@@ -2947,10 +2965,10 @@ class FullscreenOverlayContainer extends OverlayContainer {
2947
2965
  _document.msFullscreenElement ||
2948
2966
  null);
2949
2967
  }
2950
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.1", ngImport: i0, type: FullscreenOverlayContainer, deps: [{ token: DOCUMENT }, { token: i1$1.Platform }], target: i0.ɵɵFactoryTarget.Injectable }); }
2951
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.1.1", ngImport: i0, type: FullscreenOverlayContainer, providedIn: 'root' }); }
2968
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.0", ngImport: i0, type: FullscreenOverlayContainer, deps: [{ token: DOCUMENT }, { token: i1$1.Platform }], target: i0.ɵɵFactoryTarget.Injectable }); }
2969
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.2.0", ngImport: i0, type: FullscreenOverlayContainer, providedIn: 'root' }); }
2952
2970
  }
2953
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.1", ngImport: i0, type: FullscreenOverlayContainer, decorators: [{
2971
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.0", ngImport: i0, type: FullscreenOverlayContainer, decorators: [{
2954
2972
  type: Injectable,
2955
2973
  args: [{ providedIn: 'root' }]
2956
2974
  }], ctorParameters: () => [{ type: undefined, decorators: [{