@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.
- package/fesm2022/a11y.mjs +313 -266
- package/fesm2022/a11y.mjs.map +1 -1
- package/fesm2022/accordion.mjs +41 -44
- package/fesm2022/accordion.mjs.map +1 -1
- package/fesm2022/bidi.mjs +19 -19
- package/fesm2022/bidi.mjs.map +1 -1
- package/fesm2022/cdk.mjs +1 -1
- package/fesm2022/cdk.mjs.map +1 -1
- package/fesm2022/clipboard.mjs +31 -26
- package/fesm2022/clipboard.mjs.map +1 -1
- package/fesm2022/collections.mjs +30 -28
- package/fesm2022/collections.mjs.map +1 -1
- package/fesm2022/dialog.mjs +210 -131
- package/fesm2022/dialog.mjs.map +1 -1
- package/fesm2022/drag-drop.mjs +721 -477
- package/fesm2022/drag-drop.mjs.map +1 -1
- package/fesm2022/layout.mjs +18 -17
- package/fesm2022/layout.mjs.map +1 -1
- package/fesm2022/listbox.mjs +76 -62
- package/fesm2022/listbox.mjs.map +1 -1
- package/fesm2022/menu.mjs +231 -203
- package/fesm2022/menu.mjs.map +1 -1
- package/fesm2022/observers/private.mjs +15 -12
- package/fesm2022/observers/private.mjs.map +1 -1
- package/fesm2022/observers.mjs +22 -23
- package/fesm2022/observers.mjs.map +1 -1
- package/fesm2022/overlay.mjs +410 -278
- package/fesm2022/overlay.mjs.map +1 -1
- package/fesm2022/platform.mjs +49 -50
- package/fesm2022/platform.mjs.map +1 -1
- package/fesm2022/portal.mjs +110 -74
- package/fesm2022/portal.mjs.map +1 -1
- package/fesm2022/private.mjs +7 -8
- package/fesm2022/private.mjs.map +1 -1
- package/fesm2022/scrolling.mjs +179 -158
- package/fesm2022/scrolling.mjs.map +1 -1
- package/fesm2022/stepper.mjs +97 -65
- package/fesm2022/stepper.mjs.map +1 -1
- package/fesm2022/table.mjs +443 -232
- package/fesm2022/table.mjs.map +1 -1
- package/fesm2022/testing/selenium-webdriver.mjs +6 -0
- package/fesm2022/testing/selenium-webdriver.mjs.map +1 -1
- package/fesm2022/testing/testbed.mjs +16 -7
- package/fesm2022/testing/testbed.mjs.map +1 -1
- package/fesm2022/testing.mjs +7 -2
- package/fesm2022/testing.mjs.map +1 -1
- package/fesm2022/text-field.mjs +50 -41
- package/fesm2022/text-field.mjs.map +1 -1
- package/fesm2022/tree.mjs +220 -118
- package/fesm2022/tree.mjs.map +1 -1
- package/package.json +1 -1
- package/schematics/ng-add/index.js +1 -1
- package/schematics/ng-add/index.mjs +1 -1
- package/table/index.d.ts +20 -1
package/fesm2022/scrolling.mjs
CHANGED
|
@@ -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,
|
|
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
|
|
190
|
-
static
|
|
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
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
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
|
|
355
|
-
static
|
|
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
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
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
|
|
511
|
-
static
|
|
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
|
|
642
|
-
static
|
|
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
|
|
667
|
-
static
|
|
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
|
|
1054
|
-
static
|
|
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
|
|
1340
|
-
static
|
|
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
|
|
1370
|
-
static
|
|
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
|
|
1396
|
-
static
|
|
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
|
|
1408
|
-
static
|
|
1409
|
-
static
|
|
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
|
|
1423
|
-
static
|
|
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
|
|
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,
|