@angular/cdk 19.0.0-next.9 → 19.0.0-rc.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (54) hide show
  1. package/fesm2022/a11y.mjs +313 -266
  2. package/fesm2022/a11y.mjs.map +1 -1
  3. package/fesm2022/accordion.mjs +41 -44
  4. package/fesm2022/accordion.mjs.map +1 -1
  5. package/fesm2022/bidi.mjs +19 -19
  6. package/fesm2022/bidi.mjs.map +1 -1
  7. package/fesm2022/cdk.mjs +1 -1
  8. package/fesm2022/cdk.mjs.map +1 -1
  9. package/fesm2022/clipboard.mjs +31 -26
  10. package/fesm2022/clipboard.mjs.map +1 -1
  11. package/fesm2022/collections.mjs +30 -28
  12. package/fesm2022/collections.mjs.map +1 -1
  13. package/fesm2022/dialog.mjs +210 -131
  14. package/fesm2022/dialog.mjs.map +1 -1
  15. package/fesm2022/drag-drop.mjs +721 -477
  16. package/fesm2022/drag-drop.mjs.map +1 -1
  17. package/fesm2022/layout.mjs +18 -17
  18. package/fesm2022/layout.mjs.map +1 -1
  19. package/fesm2022/listbox.mjs +76 -62
  20. package/fesm2022/listbox.mjs.map +1 -1
  21. package/fesm2022/menu.mjs +231 -203
  22. package/fesm2022/menu.mjs.map +1 -1
  23. package/fesm2022/observers/private.mjs +15 -12
  24. package/fesm2022/observers/private.mjs.map +1 -1
  25. package/fesm2022/observers.mjs +22 -23
  26. package/fesm2022/observers.mjs.map +1 -1
  27. package/fesm2022/overlay.mjs +410 -278
  28. package/fesm2022/overlay.mjs.map +1 -1
  29. package/fesm2022/platform.mjs +49 -50
  30. package/fesm2022/platform.mjs.map +1 -1
  31. package/fesm2022/portal.mjs +110 -74
  32. package/fesm2022/portal.mjs.map +1 -1
  33. package/fesm2022/private.mjs +7 -8
  34. package/fesm2022/private.mjs.map +1 -1
  35. package/fesm2022/scrolling.mjs +179 -158
  36. package/fesm2022/scrolling.mjs.map +1 -1
  37. package/fesm2022/stepper.mjs +97 -65
  38. package/fesm2022/stepper.mjs.map +1 -1
  39. package/fesm2022/table.mjs +443 -232
  40. package/fesm2022/table.mjs.map +1 -1
  41. package/fesm2022/testing/selenium-webdriver.mjs +6 -0
  42. package/fesm2022/testing/selenium-webdriver.mjs.map +1 -1
  43. package/fesm2022/testing/testbed.mjs +16 -7
  44. package/fesm2022/testing/testbed.mjs.map +1 -1
  45. package/fesm2022/testing.mjs +7 -2
  46. package/fesm2022/testing.mjs.map +1 -1
  47. package/fesm2022/text-field.mjs +50 -41
  48. package/fesm2022/text-field.mjs.map +1 -1
  49. package/fesm2022/tree.mjs +220 -118
  50. package/fesm2022/tree.mjs.map +1 -1
  51. package/package.json +1 -1
  52. package/schematics/ng-add/index.js +1 -1
  53. package/schematics/ng-add/index.mjs +1 -1
  54. package/table/index.d.ts +20 -1
@@ -6,24 +6,30 @@ import { distinctUntilChanged, auditTime, filter, takeUntil, startWith, pairwise
6
6
  import { Platform, getRtlScrollAxisType, RtlScrollAxisType, supportsScrollBehavior } from '@angular/cdk/platform';
7
7
  import { DOCUMENT } from '@angular/common';
8
8
  import { Directionality, BidiModule } from '@angular/cdk/bidi';
9
- import { isDataSource, ArrayDataSource, _VIEW_REPEATER_STRATEGY, _RecycleViewRepeaterStrategy } from '@angular/cdk/collections';
9
+ import { _VIEW_REPEATER_STRATEGY, isDataSource, ArrayDataSource, _RecycleViewRepeaterStrategy } from '@angular/cdk/collections';
10
10
 
11
11
  /** The injection token used to specify the virtual scrolling strategy. */
12
12
  const VIRTUAL_SCROLL_STRATEGY = new InjectionToken('VIRTUAL_SCROLL_STRATEGY');
13
13
 
14
14
  /** Virtual scrolling strategy for lists with items of known fixed size. */
15
15
  class FixedSizeVirtualScrollStrategy {
16
+ _scrolledIndexChange = new Subject();
17
+ /** @docs-private Implemented as part of VirtualScrollStrategy. */
18
+ scrolledIndexChange = this._scrolledIndexChange.pipe(distinctUntilChanged());
19
+ /** The attached viewport. */
20
+ _viewport = null;
21
+ /** The size of the items in the virtually scrolling list. */
22
+ _itemSize;
23
+ /** The minimum amount of buffer rendered beyond the viewport (in pixels). */
24
+ _minBufferPx;
25
+ /** The number of buffer items to render beyond the edge of the viewport (in pixels). */
26
+ _maxBufferPx;
16
27
  /**
17
28
  * @param itemSize The size of the items in the virtually scrolling list.
18
29
  * @param minBufferPx The minimum amount of buffer (in pixels) before needing to render more
19
30
  * @param maxBufferPx The amount of buffer (in pixels) to render when rendering more.
20
31
  */
21
32
  constructor(itemSize, minBufferPx, maxBufferPx) {
22
- this._scrolledIndexChange = new Subject();
23
- /** @docs-private Implemented as part of VirtualScrollStrategy. */
24
- this.scrolledIndexChange = this._scrolledIndexChange.pipe(distinctUntilChanged());
25
- /** The attached viewport. */
26
- this._viewport = null;
27
33
  this._itemSize = itemSize;
28
34
  this._minBufferPx = minBufferPx;
29
35
  this._maxBufferPx = maxBufferPx;
@@ -150,13 +156,6 @@ function _fixedSizeVirtualScrollStrategyFactory(fixedSizeDir) {
150
156
  }
151
157
  /** A virtual scroll strategy that supports fixed-size items. */
152
158
  class CdkFixedSizeVirtualScroll {
153
- constructor() {
154
- this._itemSize = 20;
155
- this._minBufferPx = 100;
156
- this._maxBufferPx = 200;
157
- /** The scroll strategy used by this directive. */
158
- this._scrollStrategy = new FixedSizeVirtualScrollStrategy(this.itemSize, this.minBufferPx, this.maxBufferPx);
159
- }
160
159
  /** The size of the items in the list (in pixels). */
161
160
  get itemSize() {
162
161
  return this._itemSize;
@@ -164,6 +163,7 @@ class CdkFixedSizeVirtualScroll {
164
163
  set itemSize(value) {
165
164
  this._itemSize = coerceNumberProperty(value);
166
165
  }
166
+ _itemSize = 20;
167
167
  /**
168
168
  * The minimum amount of buffer rendered beyond the viewport (in pixels).
169
169
  * If the amount of buffer dips below this number, more items will be rendered. Defaults to 100px.
@@ -174,6 +174,7 @@ class CdkFixedSizeVirtualScroll {
174
174
  set minBufferPx(value) {
175
175
  this._minBufferPx = coerceNumberProperty(value);
176
176
  }
177
+ _minBufferPx = 100;
177
178
  /**
178
179
  * The number of pixels worth of buffer to render for when rendering new items. Defaults to 200px.
179
180
  */
@@ -183,17 +184,20 @@ class CdkFixedSizeVirtualScroll {
183
184
  set maxBufferPx(value) {
184
185
  this._maxBufferPx = coerceNumberProperty(value);
185
186
  }
187
+ _maxBufferPx = 200;
188
+ /** The scroll strategy used by this directive. */
189
+ _scrollStrategy = new FixedSizeVirtualScrollStrategy(this.itemSize, this.minBufferPx, this.maxBufferPx);
186
190
  ngOnChanges() {
187
191
  this._scrollStrategy.updateItemAndBufferSize(this.itemSize, this.minBufferPx, this.maxBufferPx);
188
192
  }
189
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.0-next.10", ngImport: i0, type: CdkFixedSizeVirtualScroll, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
190
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.0.0-next.10", type: CdkFixedSizeVirtualScroll, isStandalone: true, selector: "cdk-virtual-scroll-viewport[itemSize]", inputs: { itemSize: "itemSize", minBufferPx: "minBufferPx", maxBufferPx: "maxBufferPx" }, providers: [
193
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.0-next.10", ngImport: i0, type: CdkFixedSizeVirtualScroll, deps: [], target: i0.ɵɵFactoryTarget.Directive });
194
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.0.0-next.10", type: CdkFixedSizeVirtualScroll, isStandalone: true, selector: "cdk-virtual-scroll-viewport[itemSize]", inputs: { itemSize: "itemSize", minBufferPx: "minBufferPx", maxBufferPx: "maxBufferPx" }, providers: [
191
195
  {
192
196
  provide: VIRTUAL_SCROLL_STRATEGY,
193
197
  useFactory: _fixedSizeVirtualScrollStrategyFactory,
194
198
  deps: [forwardRef(() => CdkFixedSizeVirtualScroll)],
195
199
  },
196
- ], usesOnChanges: true, ngImport: i0 }); }
200
+ ], usesOnChanges: true, ngImport: i0 });
197
201
  }
198
202
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.0-next.10", ngImport: i0, type: CdkFixedSizeVirtualScroll, decorators: [{
199
203
  type: Directive,
@@ -222,23 +226,22 @@ const DEFAULT_SCROLL_TIME = 20;
222
226
  * Scrollable references emit a scrolled event.
223
227
  */
224
228
  class ScrollDispatcher {
225
- constructor() {
226
- this._ngZone = inject(NgZone);
227
- this._platform = inject(Platform);
228
- /** Used to reference correct document/window */
229
- this._document = inject(DOCUMENT, { optional: true });
230
- /** Subject for notifying that a registered scrollable reference element has been scrolled. */
231
- this._scrolled = new Subject();
232
- /** Keeps track of the global `scroll` and `resize` subscriptions. */
233
- this._globalSubscription = null;
234
- /** Keeps track of the amount of subscriptions to `scrolled`. Used for cleaning up afterwards. */
235
- this._scrolledCount = 0;
236
- /**
237
- * Map of all the scrollable references that are registered with the service and their
238
- * scroll event subscriptions.
239
- */
240
- this.scrollContainers = new Map();
241
- }
229
+ _ngZone = inject(NgZone);
230
+ _platform = inject(Platform);
231
+ /** Used to reference correct document/window */
232
+ _document = inject(DOCUMENT, { optional: true });
233
+ constructor() { }
234
+ /** Subject for notifying that a registered scrollable reference element has been scrolled. */
235
+ _scrolled = new Subject();
236
+ /** Keeps track of the global `scroll` and `resize` subscriptions. */
237
+ _globalSubscription = null;
238
+ /** Keeps track of the amount of subscriptions to `scrolled`. Used for cleaning up afterwards. */
239
+ _scrolledCount = 0;
240
+ /**
241
+ * Map of all the scrollable references that are registered with the service and their
242
+ * scroll event subscriptions.
243
+ */
244
+ scrollContainers = new Map();
242
245
  /**
243
246
  * Registers a scrollable instance with the service and listens for its scrolled events. When the
244
247
  * scrollable is scrolled, the service emits the event to its scrolled observable.
@@ -351,8 +354,8 @@ class ScrollDispatcher {
351
354
  this._globalSubscription = null;
352
355
  }
353
356
  }
354
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.0-next.10", ngImport: i0, type: ScrollDispatcher, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
355
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.0.0-next.10", ngImport: i0, type: ScrollDispatcher, providedIn: 'root' }); }
357
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.0-next.10", ngImport: i0, type: ScrollDispatcher, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
358
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.0.0-next.10", ngImport: i0, type: ScrollDispatcher, providedIn: 'root' });
356
359
  }
357
360
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.0-next.10", ngImport: i0, type: ScrollDispatcher, decorators: [{
358
361
  type: Injectable,
@@ -365,16 +368,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.0-next.10",
365
368
  * can be listened to through the service.
366
369
  */
367
370
  class CdkScrollable {
368
- constructor() {
369
- this.elementRef = inject(ElementRef);
370
- this.scrollDispatcher = inject(ScrollDispatcher);
371
- this.ngZone = inject(NgZone);
372
- this.dir = inject(Directionality, { optional: true });
373
- this._destroyed = new Subject();
374
- this._elementScrolled = new Observable((observer) => this.ngZone.runOutsideAngular(() => fromEvent(this.elementRef.nativeElement, 'scroll')
375
- .pipe(takeUntil(this._destroyed))
376
- .subscribe(observer)));
377
- }
371
+ elementRef = inject(ElementRef);
372
+ scrollDispatcher = inject(ScrollDispatcher);
373
+ ngZone = inject(NgZone);
374
+ dir = inject(Directionality, { optional: true });
375
+ _destroyed = new Subject();
376
+ _elementScrolled = new Observable((observer) => this.ngZone.runOutsideAngular(() => fromEvent(this.elementRef.nativeElement, 'scroll')
377
+ .pipe(takeUntil(this._destroyed))
378
+ .subscribe(observer)));
379
+ constructor() { }
378
380
  ngOnInit() {
379
381
  this.scrollDispatcher.register(this);
380
382
  }
@@ -507,8 +509,8 @@ class CdkScrollable {
507
509
  }
508
510
  }
509
511
  }
510
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.0-next.10", ngImport: i0, type: CdkScrollable, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
511
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.0.0-next.10", type: CdkScrollable, isStandalone: true, selector: "[cdk-scrollable], [cdkScrollable]", ngImport: i0 }); }
512
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.0-next.10", ngImport: i0, type: CdkScrollable, deps: [], target: i0.ɵɵFactoryTarget.Directive });
513
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.0.0-next.10", type: CdkScrollable, isStandalone: true, selector: "[cdk-scrollable], [cdkScrollable]", ngImport: i0 });
512
514
  }
513
515
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.0-next.10", ngImport: i0, type: CdkScrollable, decorators: [{
514
516
  type: Directive,
@@ -524,16 +526,18 @@ const DEFAULT_RESIZE_TIME = 20;
524
526
  * @docs-private
525
527
  */
526
528
  class ViewportRuler {
529
+ _platform = inject(Platform);
530
+ /** Cached viewport dimensions. */
531
+ _viewportSize;
532
+ /** Stream of viewport change events. */
533
+ _change = new Subject();
534
+ /** Event listener that will be used to handle the viewport change events. */
535
+ _changeListener = (event) => {
536
+ this._change.next(event);
537
+ };
538
+ /** Used to reference correct document/window */
539
+ _document = inject(DOCUMENT, { optional: true });
527
540
  constructor() {
528
- this._platform = inject(Platform);
529
- /** Stream of viewport change events. */
530
- this._change = new Subject();
531
- /** Event listener that will be used to handle the viewport change events. */
532
- this._changeListener = (event) => {
533
- this._change.next(event);
534
- };
535
- /** Used to reference correct document/window */
536
- this._document = inject(DOCUMENT, { optional: true });
537
541
  const ngZone = inject(NgZone);
538
542
  ngZone.runOutsideAngular(() => {
539
543
  if (this._platform.isBrowser) {
@@ -638,8 +642,8 @@ class ViewportRuler {
638
642
  ? { width: window.innerWidth, height: window.innerHeight }
639
643
  : { width: 0, height: 0 };
640
644
  }
641
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.0-next.10", ngImport: i0, type: ViewportRuler, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
642
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.0.0-next.10", ngImport: i0, type: ViewportRuler, providedIn: 'root' }); }
645
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.0-next.10", ngImport: i0, type: ViewportRuler, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
646
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.0.0-next.10", ngImport: i0, type: ViewportRuler, providedIn: 'root' });
643
647
  }
644
648
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.0-next.10", ngImport: i0, type: ViewportRuler, decorators: [{
645
649
  type: Injectable,
@@ -663,8 +667,8 @@ class CdkVirtualScrollable extends CdkScrollable {
663
667
  const viewportEl = this.elementRef.nativeElement;
664
668
  return orientation === 'horizontal' ? viewportEl.clientWidth : viewportEl.clientHeight;
665
669
  }
666
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.0-next.10", ngImport: i0, type: CdkVirtualScrollable, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
667
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.0.0-next.10", type: CdkVirtualScrollable, isStandalone: true, usesInheritance: true, ngImport: i0 }); }
670
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.0-next.10", ngImport: i0, type: CdkVirtualScrollable, deps: [], target: i0.ɵɵFactoryTarget.Directive });
671
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.0.0-next.10", type: CdkVirtualScrollable, isStandalone: true, usesInheritance: true, ngImport: i0 });
668
672
  }
669
673
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.0-next.10", ngImport: i0, type: CdkVirtualScrollable, decorators: [{
670
674
  type: Directive
@@ -682,6 +686,17 @@ function rangesEqual(r1, r2) {
682
686
  const SCROLL_SCHEDULER = typeof requestAnimationFrame !== 'undefined' ? animationFrameScheduler : asapScheduler;
683
687
  /** A viewport that virtualizes its scrolling with the help of `CdkVirtualForOf`. */
684
688
  class CdkVirtualScrollViewport extends CdkVirtualScrollable {
689
+ elementRef = inject(ElementRef);
690
+ _changeDetectorRef = inject(ChangeDetectorRef);
691
+ _scrollStrategy = inject(VIRTUAL_SCROLL_STRATEGY, {
692
+ optional: true,
693
+ });
694
+ scrollable = inject(VIRTUAL_SCROLLABLE, { optional: true });
695
+ _platform = inject(Platform);
696
+ /** Emits when the viewport is detached from a CdkVirtualForOf. */
697
+ _detachedSubject = new Subject();
698
+ /** Emits when the rendered range changes. */
699
+ _renderedRangeSubject = new Subject();
685
700
  /** The direction the viewport scrolls. */
686
701
  get orientation() {
687
702
  return this._orientation;
@@ -692,62 +707,60 @@ class CdkVirtualScrollViewport extends CdkVirtualScrollable {
692
707
  this._calculateSpacerSize();
693
708
  }
694
709
  }
710
+ _orientation = 'vertical';
711
+ /**
712
+ * Whether rendered items should persist in the DOM after scrolling out of view. By default, items
713
+ * will be removed.
714
+ */
715
+ appendOnly = false;
716
+ // Note: we don't use the typical EventEmitter here because we need to subscribe to the scroll
717
+ // strategy lazily (i.e. only if the user is actually listening to the events). We do this because
718
+ // depending on how the strategy calculates the scrolled index, it may come at a cost to
719
+ // performance.
720
+ /** Emits when the index of the first element visible in the viewport changes. */
721
+ scrolledIndexChange = new Observable((observer) => this._scrollStrategy.scrolledIndexChange.subscribe(index => Promise.resolve().then(() => this.ngZone.run(() => observer.next(index)))));
722
+ /** The element that wraps the rendered content. */
723
+ _contentWrapper;
724
+ /** A stream that emits whenever the rendered range changes. */
725
+ renderedRangeStream = this._renderedRangeSubject;
726
+ /**
727
+ * The total size of all content (in pixels), including content that is not currently rendered.
728
+ */
729
+ _totalContentSize = 0;
730
+ /** A string representing the `style.width` property value to be used for the spacer element. */
731
+ _totalContentWidth = '';
732
+ /** A string representing the `style.height` property value to be used for the spacer element. */
733
+ _totalContentHeight = '';
734
+ /**
735
+ * The CSS transform applied to the rendered subset of items so that they appear within the bounds
736
+ * of the visible viewport.
737
+ */
738
+ _renderedContentTransform;
739
+ /** The currently rendered range of indices. */
740
+ _renderedRange = { start: 0, end: 0 };
741
+ /** The length of the data bound to this viewport (in number of items). */
742
+ _dataLength = 0;
743
+ /** The size of the viewport (in pixels). */
744
+ _viewportSize = 0;
745
+ /** the currently attached CdkVirtualScrollRepeater. */
746
+ _forOf;
747
+ /** The last rendered content offset that was set. */
748
+ _renderedContentOffset = 0;
749
+ /**
750
+ * Whether the last rendered content offset was to the end of the content (and therefore needs to
751
+ * be rewritten as an offset to the start of the content).
752
+ */
753
+ _renderedContentOffsetNeedsRewrite = false;
754
+ /** Whether there is a pending change detection cycle. */
755
+ _isChangeDetectionPending = false;
756
+ /** A list of functions to run after the next change detection cycle. */
757
+ _runAfterChangeDetection = [];
758
+ /** Subscription to changes in the viewport size. */
759
+ _viewportChanges = Subscription.EMPTY;
760
+ _injector = inject(Injector);
761
+ _isDestroyed = false;
695
762
  constructor() {
696
763
  super();
697
- this.elementRef = inject(ElementRef);
698
- this._changeDetectorRef = inject(ChangeDetectorRef);
699
- this._scrollStrategy = inject(VIRTUAL_SCROLL_STRATEGY, {
700
- optional: true,
701
- });
702
- this.scrollable = inject(VIRTUAL_SCROLLABLE, { optional: true });
703
- this._platform = inject(Platform);
704
- /** Emits when the viewport is detached from a CdkVirtualForOf. */
705
- this._detachedSubject = new Subject();
706
- /** Emits when the rendered range changes. */
707
- this._renderedRangeSubject = new Subject();
708
- this._orientation = 'vertical';
709
- /**
710
- * Whether rendered items should persist in the DOM after scrolling out of view. By default, items
711
- * will be removed.
712
- */
713
- this.appendOnly = false;
714
- // Note: we don't use the typical EventEmitter here because we need to subscribe to the scroll
715
- // strategy lazily (i.e. only if the user is actually listening to the events). We do this because
716
- // depending on how the strategy calculates the scrolled index, it may come at a cost to
717
- // performance.
718
- /** Emits when the index of the first element visible in the viewport changes. */
719
- this.scrolledIndexChange = new Observable((observer) => this._scrollStrategy.scrolledIndexChange.subscribe(index => Promise.resolve().then(() => this.ngZone.run(() => observer.next(index)))));
720
- /** A stream that emits whenever the rendered range changes. */
721
- this.renderedRangeStream = this._renderedRangeSubject;
722
- /**
723
- * The total size of all content (in pixels), including content that is not currently rendered.
724
- */
725
- this._totalContentSize = 0;
726
- /** A string representing the `style.width` property value to be used for the spacer element. */
727
- this._totalContentWidth = '';
728
- /** A string representing the `style.height` property value to be used for the spacer element. */
729
- this._totalContentHeight = '';
730
- /** The currently rendered range of indices. */
731
- this._renderedRange = { start: 0, end: 0 };
732
- /** The length of the data bound to this viewport (in number of items). */
733
- this._dataLength = 0;
734
- /** The size of the viewport (in pixels). */
735
- this._viewportSize = 0;
736
- /** The last rendered content offset that was set. */
737
- this._renderedContentOffset = 0;
738
- /**
739
- * Whether the last rendered content offset was to the end of the content (and therefore needs to
740
- * be rewritten as an offset to the start of the content).
741
- */
742
- this._renderedContentOffsetNeedsRewrite = false;
743
- /** Whether there is a pending change detection cycle. */
744
- this._isChangeDetectionPending = false;
745
- /** A list of functions to run after the next change detection cycle. */
746
- this._runAfterChangeDetection = [];
747
- /** Subscription to changes in the viewport size. */
748
- this._viewportChanges = Subscription.EMPTY;
749
- this._injector = inject(Injector);
750
- this._isDestroyed = false;
751
764
  const viewportRuler = inject(ViewportRuler);
752
765
  if (!this._scrollStrategy && (typeof ngDevMode === 'undefined' || ngDevMode)) {
753
766
  throw Error('Error: cdk-virtual-scroll-viewport requires the "itemSize" property to be set.');
@@ -1050,14 +1063,14 @@ class CdkVirtualScrollViewport extends CdkVirtualScrollable {
1050
1063
  this._totalContentWidth =
1051
1064
  this.orientation === 'horizontal' ? `${this._totalContentSize}px` : '';
1052
1065
  }
1053
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.0-next.10", ngImport: i0, type: CdkVirtualScrollViewport, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1054
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "19.0.0-next.10", type: CdkVirtualScrollViewport, isStandalone: true, selector: "cdk-virtual-scroll-viewport", inputs: { orientation: "orientation", appendOnly: ["appendOnly", "appendOnly", booleanAttribute] }, outputs: { scrolledIndexChange: "scrolledIndexChange" }, host: { properties: { "class.cdk-virtual-scroll-orientation-horizontal": "orientation === \"horizontal\"", "class.cdk-virtual-scroll-orientation-vertical": "orientation !== \"horizontal\"" }, classAttribute: "cdk-virtual-scroll-viewport" }, providers: [
1066
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.0-next.10", ngImport: i0, type: CdkVirtualScrollViewport, deps: [], target: i0.ɵɵFactoryTarget.Component });
1067
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "19.0.0-next.10", type: CdkVirtualScrollViewport, isStandalone: true, selector: "cdk-virtual-scroll-viewport", inputs: { orientation: "orientation", appendOnly: ["appendOnly", "appendOnly", booleanAttribute] }, outputs: { scrolledIndexChange: "scrolledIndexChange" }, host: { properties: { "class.cdk-virtual-scroll-orientation-horizontal": "orientation === \"horizontal\"", "class.cdk-virtual-scroll-orientation-vertical": "orientation !== \"horizontal\"" }, classAttribute: "cdk-virtual-scroll-viewport" }, providers: [
1055
1068
  {
1056
1069
  provide: CdkScrollable,
1057
1070
  useFactory: (virtualScrollable, viewport) => virtualScrollable || viewport,
1058
1071
  deps: [[new Optional(), new Inject(VIRTUAL_SCROLLABLE)], CdkVirtualScrollViewport],
1059
1072
  },
1060
- ], viewQueries: [{ propertyName: "_contentWrapper", first: true, predicate: ["contentWrapper"], descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "<!--\n Wrap the rendered content in an element that will be used to offset it based on the scroll\n position.\n-->\n<div #contentWrapper class=\"cdk-virtual-scroll-content-wrapper\">\n <ng-content></ng-content>\n</div>\n<!--\n Spacer used to force the scrolling container to the correct size for the *total* number of items\n so that the scrollbar captures the size of the entire data set.\n-->\n<div class=\"cdk-virtual-scroll-spacer\"\n [style.width]=\"_totalContentWidth\" [style.height]=\"_totalContentHeight\"></div>\n", styles: ["cdk-virtual-scroll-viewport{display:block;position:relative;transform:translateZ(0)}.cdk-virtual-scrollable{overflow:auto;will-change:scroll-position;contain:strict;-webkit-overflow-scrolling:touch}.cdk-virtual-scroll-content-wrapper{position:absolute;top:0;left:0;contain:content}[dir=rtl] .cdk-virtual-scroll-content-wrapper{right:0;left:auto}.cdk-virtual-scroll-orientation-horizontal .cdk-virtual-scroll-content-wrapper{min-height:100%}.cdk-virtual-scroll-orientation-horizontal .cdk-virtual-scroll-content-wrapper>dl:not([cdkVirtualFor]),.cdk-virtual-scroll-orientation-horizontal .cdk-virtual-scroll-content-wrapper>ol:not([cdkVirtualFor]),.cdk-virtual-scroll-orientation-horizontal .cdk-virtual-scroll-content-wrapper>table:not([cdkVirtualFor]),.cdk-virtual-scroll-orientation-horizontal .cdk-virtual-scroll-content-wrapper>ul:not([cdkVirtualFor]){padding-left:0;padding-right:0;margin-left:0;margin-right:0;border-left-width:0;border-right-width:0;outline:none}.cdk-virtual-scroll-orientation-vertical .cdk-virtual-scroll-content-wrapper{min-width:100%}.cdk-virtual-scroll-orientation-vertical .cdk-virtual-scroll-content-wrapper>dl:not([cdkVirtualFor]),.cdk-virtual-scroll-orientation-vertical .cdk-virtual-scroll-content-wrapper>ol:not([cdkVirtualFor]),.cdk-virtual-scroll-orientation-vertical .cdk-virtual-scroll-content-wrapper>table:not([cdkVirtualFor]),.cdk-virtual-scroll-orientation-vertical .cdk-virtual-scroll-content-wrapper>ul:not([cdkVirtualFor]){padding-top:0;padding-bottom:0;margin-top:0;margin-bottom:0;border-top-width:0;border-bottom-width:0;outline:none}.cdk-virtual-scroll-spacer{height:1px;transform-origin:0 0;flex:0 0 auto}[dir=rtl] .cdk-virtual-scroll-spacer{transform-origin:100% 0}"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
1073
+ ], viewQueries: [{ propertyName: "_contentWrapper", first: true, predicate: ["contentWrapper"], descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "<!--\n Wrap the rendered content in an element that will be used to offset it based on the scroll\n position.\n-->\n<div #contentWrapper class=\"cdk-virtual-scroll-content-wrapper\">\n <ng-content></ng-content>\n</div>\n<!--\n Spacer used to force the scrolling container to the correct size for the *total* number of items\n so that the scrollbar captures the size of the entire data set.\n-->\n<div class=\"cdk-virtual-scroll-spacer\"\n [style.width]=\"_totalContentWidth\" [style.height]=\"_totalContentHeight\"></div>\n", styles: ["cdk-virtual-scroll-viewport{display:block;position:relative;transform:translateZ(0)}.cdk-virtual-scrollable{overflow:auto;will-change:scroll-position;contain:strict;-webkit-overflow-scrolling:touch}.cdk-virtual-scroll-content-wrapper{position:absolute;top:0;left:0;contain:content}[dir=rtl] .cdk-virtual-scroll-content-wrapper{right:0;left:auto}.cdk-virtual-scroll-orientation-horizontal .cdk-virtual-scroll-content-wrapper{min-height:100%}.cdk-virtual-scroll-orientation-horizontal .cdk-virtual-scroll-content-wrapper>dl:not([cdkVirtualFor]),.cdk-virtual-scroll-orientation-horizontal .cdk-virtual-scroll-content-wrapper>ol:not([cdkVirtualFor]),.cdk-virtual-scroll-orientation-horizontal .cdk-virtual-scroll-content-wrapper>table:not([cdkVirtualFor]),.cdk-virtual-scroll-orientation-horizontal .cdk-virtual-scroll-content-wrapper>ul:not([cdkVirtualFor]){padding-left:0;padding-right:0;margin-left:0;margin-right:0;border-left-width:0;border-right-width:0;outline:none}.cdk-virtual-scroll-orientation-vertical .cdk-virtual-scroll-content-wrapper{min-width:100%}.cdk-virtual-scroll-orientation-vertical .cdk-virtual-scroll-content-wrapper>dl:not([cdkVirtualFor]),.cdk-virtual-scroll-orientation-vertical .cdk-virtual-scroll-content-wrapper>ol:not([cdkVirtualFor]),.cdk-virtual-scroll-orientation-vertical .cdk-virtual-scroll-content-wrapper>table:not([cdkVirtualFor]),.cdk-virtual-scroll-orientation-vertical .cdk-virtual-scroll-content-wrapper>ul:not([cdkVirtualFor]){padding-top:0;padding-bottom:0;margin-top:0;margin-bottom:0;border-top-width:0;border-bottom-width:0;outline:none}.cdk-virtual-scroll-spacer{height:1px;transform-origin:0 0;flex:0 0 auto}[dir=rtl] .cdk-virtual-scroll-spacer{transform-origin:100% 0}"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
1061
1074
  }
1062
1075
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.0-next.10", ngImport: i0, type: CdkVirtualScrollViewport, decorators: [{
1063
1076
  type: Component,
@@ -1101,6 +1114,15 @@ function getOffset(orientation, direction, node) {
1101
1114
  * container.
1102
1115
  */
1103
1116
  class CdkVirtualForOf {
1117
+ _viewContainerRef = inject(ViewContainerRef);
1118
+ _template = inject(TemplateRef);
1119
+ _differs = inject(IterableDiffers);
1120
+ _viewRepeater = inject(_VIEW_REPEATER_STRATEGY);
1121
+ _viewport = inject(CdkVirtualScrollViewport, { skipSelf: true });
1122
+ /** Emits when the rendered view of the data changes. */
1123
+ viewChange = new Subject();
1124
+ /** Subject that emits when a new DataSource instance is given. */
1125
+ _dataSourceChanges = new Subject();
1104
1126
  /** The DataSource to display. */
1105
1127
  get cdkVirtualForOf() {
1106
1128
  return this._cdkVirtualForOf;
@@ -1115,6 +1137,7 @@ class CdkVirtualForOf {
1115
1137
  this._dataSourceChanges.next(new ArrayDataSource(isObservable(value) ? value : Array.from(value || [])));
1116
1138
  }
1117
1139
  }
1140
+ _cdkVirtualForOf;
1118
1141
  /**
1119
1142
  * The `TrackByFunction` to use for tracking changes. The `TrackByFunction` takes the index and
1120
1143
  * the item and produces a value to be used as the item's identity when tracking changes.
@@ -1128,6 +1151,7 @@ class CdkVirtualForOf {
1128
1151
  ? (index, item) => fn(index + (this._renderedRange ? this._renderedRange.start : 0), item)
1129
1152
  : undefined;
1130
1153
  }
1154
+ _cdkVirtualForTrackBy;
1131
1155
  /** The template used to stamp out new elements. */
1132
1156
  set cdkVirtualForTemplate(value) {
1133
1157
  if (value) {
@@ -1145,33 +1169,30 @@ class CdkVirtualForOf {
1145
1169
  set cdkVirtualForTemplateCacheSize(size) {
1146
1170
  this._viewRepeater.viewCacheSize = coerceNumberProperty(size);
1147
1171
  }
1172
+ /** Emits whenever the data in the current DataSource changes. */
1173
+ dataStream = this._dataSourceChanges.pipe(
1174
+ // Start off with null `DataSource`.
1175
+ startWith(null),
1176
+ // Bundle up the previous and current data sources so we can work with both.
1177
+ pairwise(),
1178
+ // Use `_changeDataSource` to disconnect from the previous data source and connect to the
1179
+ // new one, passing back a stream of data changes which we run through `switchMap` to give
1180
+ // us a data stream that emits the latest data from whatever the current `DataSource` is.
1181
+ switchMap(([prev, cur]) => this._changeDataSource(prev, cur)),
1182
+ // Replay the last emitted data when someone subscribes.
1183
+ shareReplay(1));
1184
+ /** The differ used to calculate changes to the data. */
1185
+ _differ = null;
1186
+ /** The most recent data emitted from the DataSource. */
1187
+ _data;
1188
+ /** The currently rendered items. */
1189
+ _renderedItems;
1190
+ /** The currently rendered range of indices. */
1191
+ _renderedRange;
1192
+ /** Whether the rendered data should be updated during the next ngDoCheck cycle. */
1193
+ _needsUpdate = false;
1194
+ _destroyed = new Subject();
1148
1195
  constructor() {
1149
- this._viewContainerRef = inject(ViewContainerRef);
1150
- this._template = inject(TemplateRef);
1151
- this._differs = inject(IterableDiffers);
1152
- this._viewRepeater = inject(_VIEW_REPEATER_STRATEGY);
1153
- this._viewport = inject(CdkVirtualScrollViewport, { skipSelf: true });
1154
- /** Emits when the rendered view of the data changes. */
1155
- this.viewChange = new Subject();
1156
- /** Subject that emits when a new DataSource instance is given. */
1157
- this._dataSourceChanges = new Subject();
1158
- /** Emits whenever the data in the current DataSource changes. */
1159
- this.dataStream = this._dataSourceChanges.pipe(
1160
- // Start off with null `DataSource`.
1161
- startWith(null),
1162
- // Bundle up the previous and current data sources so we can work with both.
1163
- pairwise(),
1164
- // Use `_changeDataSource` to disconnect from the previous data source and connect to the
1165
- // new one, passing back a stream of data changes which we run through `switchMap` to give
1166
- // us a data stream that emits the latest data from whatever the current `DataSource` is.
1167
- switchMap(([prev, cur]) => this._changeDataSource(prev, cur)),
1168
- // Replay the last emitted data when someone subscribes.
1169
- shareReplay(1));
1170
- /** The differ used to calculate changes to the data. */
1171
- this._differ = null;
1172
- /** Whether the rendered data should be updated during the next ngDoCheck cycle. */
1173
- this._needsUpdate = false;
1174
- this._destroyed = new Subject();
1175
1196
  const ngZone = inject(NgZone);
1176
1197
  this.dataStream.subscribe(data => {
1177
1198
  this._data = data;
@@ -1336,8 +1357,8 @@ class CdkVirtualForOf {
1336
1357
  static ngTemplateContextGuard(directive, context) {
1337
1358
  return true;
1338
1359
  }
1339
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.0-next.10", ngImport: i0, type: CdkVirtualForOf, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
1340
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.0.0-next.10", type: CdkVirtualForOf, isStandalone: true, selector: "[cdkVirtualFor][cdkVirtualForOf]", inputs: { cdkVirtualForOf: "cdkVirtualForOf", cdkVirtualForTrackBy: "cdkVirtualForTrackBy", cdkVirtualForTemplate: "cdkVirtualForTemplate", cdkVirtualForTemplateCacheSize: "cdkVirtualForTemplateCacheSize" }, providers: [{ provide: _VIEW_REPEATER_STRATEGY, useClass: _RecycleViewRepeaterStrategy }], ngImport: i0 }); }
1360
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.0-next.10", ngImport: i0, type: CdkVirtualForOf, deps: [], target: i0.ɵɵFactoryTarget.Directive });
1361
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.0.0-next.10", type: CdkVirtualForOf, isStandalone: true, selector: "[cdkVirtualFor][cdkVirtualForOf]", inputs: { cdkVirtualForOf: "cdkVirtualForOf", cdkVirtualForTrackBy: "cdkVirtualForTrackBy", cdkVirtualForTemplate: "cdkVirtualForTemplate", cdkVirtualForTemplateCacheSize: "cdkVirtualForTemplateCacheSize" }, providers: [{ provide: _VIEW_REPEATER_STRATEGY, useClass: _RecycleViewRepeaterStrategy }], ngImport: i0 });
1341
1362
  }
1342
1363
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.0-next.10", ngImport: i0, type: CdkVirtualForOf, decorators: [{
1343
1364
  type: Directive,
@@ -1366,8 +1387,8 @@ class CdkVirtualScrollableElement extends CdkVirtualScrollable {
1366
1387
  return (this.getElementRef().nativeElement.getBoundingClientRect()[from] -
1367
1388
  this.measureScrollOffset(from));
1368
1389
  }
1369
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.0-next.10", ngImport: i0, type: CdkVirtualScrollableElement, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
1370
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.0.0-next.10", type: CdkVirtualScrollableElement, isStandalone: true, selector: "[cdkVirtualScrollingElement]", host: { classAttribute: "cdk-virtual-scrollable" }, providers: [{ provide: VIRTUAL_SCROLLABLE, useExisting: CdkVirtualScrollableElement }], usesInheritance: true, ngImport: i0 }); }
1390
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.0-next.10", ngImport: i0, type: CdkVirtualScrollableElement, deps: [], target: i0.ɵɵFactoryTarget.Directive });
1391
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.0.0-next.10", type: CdkVirtualScrollableElement, isStandalone: true, selector: "[cdkVirtualScrollingElement]", host: { classAttribute: "cdk-virtual-scrollable" }, providers: [{ provide: VIRTUAL_SCROLLABLE, useExisting: CdkVirtualScrollableElement }], usesInheritance: true, ngImport: i0 });
1371
1392
  }
1372
1393
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.0-next.10", ngImport: i0, type: CdkVirtualScrollableElement, decorators: [{
1373
1394
  type: Directive,
@@ -1384,16 +1405,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.0-next.10",
1384
1405
  * Provides as virtual scrollable for the global / window scrollbar.
1385
1406
  */
1386
1407
  class CdkVirtualScrollableWindow extends CdkVirtualScrollable {
1408
+ _elementScrolled = new Observable((observer) => this.ngZone.runOutsideAngular(() => fromEvent(document, 'scroll').pipe(takeUntil(this._destroyed)).subscribe(observer)));
1387
1409
  constructor() {
1388
1410
  super();
1389
- this._elementScrolled = new Observable((observer) => this.ngZone.runOutsideAngular(() => fromEvent(document, 'scroll').pipe(takeUntil(this._destroyed)).subscribe(observer)));
1390
1411
  this.elementRef = new ElementRef(document.documentElement);
1391
1412
  }
1392
1413
  measureBoundingClientRectWithScrollOffset(from) {
1393
1414
  return this.getElementRef().nativeElement.getBoundingClientRect()[from];
1394
1415
  }
1395
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.0-next.10", ngImport: i0, type: CdkVirtualScrollableWindow, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
1396
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.0.0-next.10", type: CdkVirtualScrollableWindow, isStandalone: true, selector: "cdk-virtual-scroll-viewport[scrollWindow]", providers: [{ provide: VIRTUAL_SCROLLABLE, useExisting: CdkVirtualScrollableWindow }], usesInheritance: true, ngImport: i0 }); }
1416
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.0-next.10", ngImport: i0, type: CdkVirtualScrollableWindow, deps: [], target: i0.ɵɵFactoryTarget.Directive });
1417
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.0.0-next.10", type: CdkVirtualScrollableWindow, isStandalone: true, selector: "cdk-virtual-scroll-viewport[scrollWindow]", providers: [{ provide: VIRTUAL_SCROLLABLE, useExisting: CdkVirtualScrollableWindow }], usesInheritance: true, ngImport: i0 });
1397
1418
  }
1398
1419
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.0-next.10", ngImport: i0, type: CdkVirtualScrollableWindow, decorators: [{
1399
1420
  type: Directive,
@@ -1404,9 +1425,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.0-next.10",
1404
1425
  }], ctorParameters: () => [] });
1405
1426
 
1406
1427
  class CdkScrollableModule {
1407
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.0-next.10", ngImport: i0, type: CdkScrollableModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
1408
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.0.0-next.10", ngImport: i0, type: CdkScrollableModule, imports: [CdkScrollable], exports: [CdkScrollable] }); }
1409
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.0.0-next.10", ngImport: i0, type: CdkScrollableModule }); }
1428
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.0-next.10", ngImport: i0, type: CdkScrollableModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
1429
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.0.0-next.10", ngImport: i0, type: CdkScrollableModule, imports: [CdkScrollable], exports: [CdkScrollable] });
1430
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.0.0-next.10", ngImport: i0, type: CdkScrollableModule });
1410
1431
  }
1411
1432
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.0-next.10", ngImport: i0, type: CdkScrollableModule, decorators: [{
1412
1433
  type: NgModule,
@@ -1419,8 +1440,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.0-next.10",
1419
1440
  * @docs-primary-export
1420
1441
  */
1421
1442
  class ScrollingModule {
1422
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.0-next.10", ngImport: i0, type: ScrollingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
1423
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.0.0-next.10", ngImport: i0, type: ScrollingModule, imports: [BidiModule, CdkScrollableModule, CdkVirtualScrollViewport,
1443
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.0-next.10", ngImport: i0, type: ScrollingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
1444
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.0.0-next.10", ngImport: i0, type: ScrollingModule, imports: [BidiModule, CdkScrollableModule, CdkVirtualScrollViewport,
1424
1445
  CdkFixedSizeVirtualScroll,
1425
1446
  CdkVirtualForOf,
1426
1447
  CdkVirtualScrollableWindow,
@@ -1428,9 +1449,9 @@ class ScrollingModule {
1428
1449
  CdkVirtualForOf,
1429
1450
  CdkVirtualScrollViewport,
1430
1451
  CdkVirtualScrollableWindow,
1431
- CdkVirtualScrollableElement] }); }
1432
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.0.0-next.10", ngImport: i0, type: ScrollingModule, imports: [BidiModule,
1433
- CdkScrollableModule, BidiModule, CdkScrollableModule] }); }
1452
+ CdkVirtualScrollableElement] });
1453
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.0.0-next.10", ngImport: i0, type: ScrollingModule, imports: [BidiModule,
1454
+ CdkScrollableModule, BidiModule, CdkScrollableModule] });
1434
1455
  }
1435
1456
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.0-next.10", ngImport: i0, type: ScrollingModule, decorators: [{
1436
1457
  type: NgModule,