@angular/cdk 14.1.0-next.0 → 14.1.0-next.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.
- package/a11y/index.d.ts +3 -1
- package/drag-drop/index.d.ts +12 -58
- package/esm2020/a11y/a11y-module.mjs +5 -5
- package/esm2020/a11y/aria-describer/aria-describer.mjs +4 -4
- package/esm2020/a11y/focus-monitor/focus-monitor.mjs +7 -7
- package/esm2020/a11y/focus-trap/configurable-focus-trap-factory.mjs +4 -4
- package/esm2020/a11y/focus-trap/focus-trap-manager.mjs +4 -4
- package/esm2020/a11y/focus-trap/focus-trap.mjs +7 -7
- package/esm2020/a11y/high-contrast-mode/high-contrast-mode-detector.mjs +17 -5
- package/esm2020/a11y/input-modality/input-modality-detector.mjs +4 -4
- package/esm2020/a11y/interactivity-checker/interactivity-checker.mjs +4 -4
- package/esm2020/a11y/live-announcer/live-announcer.mjs +7 -7
- package/esm2020/accordion/accordion-item.mjs +4 -4
- package/esm2020/accordion/accordion-module.mjs +5 -5
- package/esm2020/accordion/accordion.mjs +4 -4
- package/esm2020/bidi/bidi-module.mjs +5 -5
- package/esm2020/bidi/dir.mjs +4 -4
- package/esm2020/bidi/directionality.mjs +4 -4
- package/esm2020/clipboard/clipboard-module.mjs +5 -5
- package/esm2020/clipboard/clipboard.mjs +4 -4
- package/esm2020/clipboard/copy-to-clipboard.mjs +4 -4
- package/esm2020/collections/unique-selection-dispatcher.mjs +4 -4
- package/esm2020/dialog/dialog-container.mjs +4 -4
- package/esm2020/dialog/dialog-module.mjs +5 -5
- package/esm2020/dialog/dialog.mjs +4 -4
- package/esm2020/drag-drop/directives/drag-handle.mjs +4 -4
- package/esm2020/drag-drop/directives/drag-placeholder.mjs +4 -4
- package/esm2020/drag-drop/directives/drag-preview.mjs +4 -4
- package/esm2020/drag-drop/directives/drag.mjs +4 -4
- package/esm2020/drag-drop/directives/drop-list-group.mjs +4 -4
- package/esm2020/drag-drop/directives/drop-list.mjs +4 -4
- package/esm2020/drag-drop/dom/client-rect.mjs +64 -0
- package/esm2020/drag-drop/dom/clone-node.mjs +65 -0
- package/esm2020/drag-drop/dom/parent-position-tracker.mjs +76 -0
- package/esm2020/drag-drop/dom/styling.mjs +69 -0
- package/esm2020/drag-drop/dom/transition-duration.mjs +36 -0
- package/esm2020/drag-drop/drag-drop-module.mjs +5 -5
- package/esm2020/drag-drop/drag-drop-registry.mjs +4 -4
- package/esm2020/drag-drop/drag-drop.mjs +4 -4
- package/esm2020/drag-drop/drag-ref.mjs +36 -22
- package/esm2020/drag-drop/drop-list-ref.mjs +36 -295
- package/esm2020/drag-drop/sorting/drop-list-sort-strategy.mjs +9 -0
- package/esm2020/drag-drop/sorting/single-axis-sort-strategy.mjs +341 -0
- package/esm2020/layout/breakpoints-observer.mjs +4 -4
- package/esm2020/layout/layout-module.mjs +5 -5
- package/esm2020/layout/media-matcher.mjs +4 -4
- package/esm2020/menu/context-menu-trigger.mjs +7 -7
- package/esm2020/menu/menu-aim.mjs +7 -7
- package/esm2020/menu/menu-bar.mjs +4 -4
- package/esm2020/menu/menu-base.mjs +4 -4
- package/esm2020/menu/menu-group.mjs +4 -4
- package/esm2020/menu/menu-item-checkbox.mjs +4 -4
- package/esm2020/menu/menu-item-radio.mjs +4 -4
- package/esm2020/menu/menu-item-selectable.mjs +4 -4
- package/esm2020/menu/menu-item.mjs +4 -4
- package/esm2020/menu/menu-module.mjs +5 -5
- package/esm2020/menu/menu-stack.mjs +4 -4
- package/esm2020/menu/menu-trigger-base.mjs +4 -4
- package/esm2020/menu/menu-trigger.mjs +4 -4
- package/esm2020/menu/menu.mjs +4 -4
- package/esm2020/observers/observe-content.mjs +14 -14
- package/esm2020/overlay/dispatchers/base-overlay-dispatcher.mjs +4 -4
- package/esm2020/overlay/dispatchers/overlay-keyboard-dispatcher.mjs +4 -4
- package/esm2020/overlay/dispatchers/overlay-outside-click-dispatcher.mjs +4 -4
- package/esm2020/overlay/fullscreen-overlay-container.mjs +4 -4
- package/esm2020/overlay/overlay-container.mjs +4 -4
- package/esm2020/overlay/overlay-directives.mjs +7 -7
- package/esm2020/overlay/overlay-module.mjs +5 -5
- package/esm2020/overlay/overlay.mjs +4 -4
- package/esm2020/overlay/position/overlay-position-builder.mjs +4 -4
- package/esm2020/overlay/scroll/scroll-strategy-options.mjs +4 -4
- package/esm2020/platform/platform-module.mjs +5 -5
- package/esm2020/platform/platform.mjs +4 -4
- package/esm2020/portal/portal-directives.mjs +17 -17
- package/esm2020/scrolling/fixed-size-virtual-scroll.mjs +4 -4
- package/esm2020/scrolling/public-api.mjs +4 -1
- package/esm2020/scrolling/scroll-dispatcher.mjs +4 -4
- package/esm2020/scrolling/scrollable.mjs +4 -4
- package/esm2020/scrolling/scrolling-module.mjs +27 -11
- package/esm2020/scrolling/viewport-ruler.mjs +4 -4
- package/esm2020/scrolling/virtual-for-of.mjs +4 -4
- package/esm2020/scrolling/virtual-scroll-viewport.mjs +72 -21
- package/esm2020/scrolling/virtual-scrollable-element.mjs +41 -0
- package/esm2020/scrolling/virtual-scrollable-window.mjs +40 -0
- package/esm2020/scrolling/virtual-scrollable.mjs +40 -0
- package/esm2020/stepper/step-header.mjs +4 -4
- package/esm2020/stepper/step-label.mjs +4 -4
- package/esm2020/stepper/stepper-button.mjs +7 -7
- package/esm2020/stepper/stepper-module.mjs +5 -5
- package/esm2020/stepper/stepper.mjs +7 -7
- package/esm2020/table/cell.mjs +22 -22
- package/esm2020/table/coalesced-style-scheduler.mjs +4 -4
- package/esm2020/table/row.mjs +28 -28
- package/esm2020/table/table-module.mjs +5 -5
- package/esm2020/table/table.mjs +19 -19
- package/esm2020/table/text-column.mjs +4 -4
- package/esm2020/testing/testbed/fake-events/dispatch-events.mjs +5 -5
- package/esm2020/testing/testbed/fake-events/event-objects.mjs +17 -6
- package/esm2020/testing/testbed/unit-test-element.mjs +17 -12
- package/esm2020/text-field/autofill.mjs +7 -7
- package/esm2020/text-field/autosize.mjs +4 -4
- package/esm2020/text-field/text-field-module.mjs +5 -5
- package/esm2020/tree/nested-node.mjs +4 -4
- package/esm2020/tree/node.mjs +4 -4
- package/esm2020/tree/outlet.mjs +4 -4
- package/esm2020/tree/padding.mjs +4 -4
- package/esm2020/tree/toggle.mjs +4 -4
- package/esm2020/tree/tree-module.mjs +5 -5
- package/esm2020/tree/tree.mjs +7 -7
- package/esm2020/version.mjs +1 -1
- package/fesm2015/a11y.mjs +59 -40
- package/fesm2015/a11y.mjs.map +1 -1
- package/fesm2015/accordion.mjs +10 -10
- package/fesm2015/accordion.mjs.map +1 -1
- package/fesm2015/bidi.mjs +10 -10
- package/fesm2015/bidi.mjs.map +1 -1
- package/fesm2015/cdk.mjs +1 -1
- package/fesm2015/cdk.mjs.map +1 -1
- package/fesm2015/clipboard.mjs +10 -10
- package/fesm2015/clipboard.mjs.map +1 -1
- package/fesm2015/collections.mjs +3 -3
- package/fesm2015/collections.mjs.map +1 -1
- package/fesm2015/dialog.mjs +10 -10
- package/fesm2015/dialog.mjs.map +1 -1
- package/fesm2015/drag-drop.mjs +552 -459
- package/fesm2015/drag-drop.mjs.map +1 -1
- package/fesm2015/layout.mjs +10 -10
- package/fesm2015/layout.mjs.map +1 -1
- package/fesm2015/menu.mjs +49 -49
- package/fesm2015/menu.mjs.map +1 -1
- package/fesm2015/observers.mjs +13 -13
- package/fesm2015/observers.mjs.map +1 -1
- package/fesm2015/overlay.mjs +34 -34
- package/fesm2015/overlay.mjs.map +1 -1
- package/fesm2015/platform.mjs +7 -7
- package/fesm2015/platform.mjs.map +1 -1
- package/fesm2015/portal.mjs +16 -16
- package/fesm2015/portal.mjs.map +1 -1
- package/fesm2015/scrolling.mjs +194 -47
- package/fesm2015/scrolling.mjs.map +1 -1
- package/fesm2015/stepper.mjs +22 -22
- package/fesm2015/stepper.mjs.map +1 -1
- package/fesm2015/table.mjs +76 -76
- package/fesm2015/table.mjs.map +1 -1
- package/fesm2015/testing/testbed.mjs +36 -20
- package/fesm2015/testing/testbed.mjs.map +1 -1
- package/fesm2015/text-field.mjs +13 -13
- package/fesm2015/text-field.mjs.map +1 -1
- package/fesm2015/tree.mjs +25 -25
- package/fesm2015/tree.mjs.map +1 -1
- package/fesm2020/a11y.mjs +52 -40
- package/fesm2020/a11y.mjs.map +1 -1
- package/fesm2020/accordion.mjs +10 -10
- package/fesm2020/accordion.mjs.map +1 -1
- package/fesm2020/bidi.mjs +10 -10
- package/fesm2020/bidi.mjs.map +1 -1
- package/fesm2020/cdk.mjs +1 -1
- package/fesm2020/cdk.mjs.map +1 -1
- package/fesm2020/clipboard.mjs +10 -10
- package/fesm2020/clipboard.mjs.map +1 -1
- package/fesm2020/collections.mjs +3 -3
- package/fesm2020/collections.mjs.map +1 -1
- package/fesm2020/dialog.mjs +10 -10
- package/fesm2020/dialog.mjs.map +1 -1
- package/fesm2020/drag-drop.mjs +552 -459
- package/fesm2020/drag-drop.mjs.map +1 -1
- package/fesm2020/layout.mjs +10 -10
- package/fesm2020/layout.mjs.map +1 -1
- package/fesm2020/menu.mjs +49 -49
- package/fesm2020/menu.mjs.map +1 -1
- package/fesm2020/observers.mjs +13 -13
- package/fesm2020/observers.mjs.map +1 -1
- package/fesm2020/overlay.mjs +34 -34
- package/fesm2020/overlay.mjs.map +1 -1
- package/fesm2020/platform.mjs +7 -7
- package/fesm2020/platform.mjs.map +1 -1
- package/fesm2020/portal.mjs +16 -16
- package/fesm2020/portal.mjs.map +1 -1
- package/fesm2020/scrolling.mjs +208 -47
- package/fesm2020/scrolling.mjs.map +1 -1
- package/fesm2020/stepper.mjs +22 -22
- package/fesm2020/stepper.mjs.map +1 -1
- package/fesm2020/table.mjs +76 -76
- package/fesm2020/table.mjs.map +1 -1
- package/fesm2020/testing/testbed.mjs +36 -20
- package/fesm2020/testing/testbed.mjs.map +1 -1
- package/fesm2020/text-field.mjs +13 -13
- package/fesm2020/text-field.mjs.map +1 -1
- package/fesm2020/tree.mjs +25 -25
- package/fesm2020/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/scrolling/index.d.ts +71 -8
- package/esm2020/drag-drop/client-rect.mjs +0 -64
- package/esm2020/drag-drop/clone-node.mjs +0 -65
- package/esm2020/drag-drop/drag-styling.mjs +0 -69
- package/esm2020/drag-drop/parent-position-tracker.mjs +0 -76
- package/esm2020/drag-drop/transition-duration.mjs +0 -36
package/fesm2015/scrolling.mjs
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { coerceNumberProperty, coerceElement, coerceBooleanProperty } from '@angular/cdk/coercion';
|
|
2
2
|
import * as i0 from '@angular/core';
|
|
3
|
-
import { InjectionToken, forwardRef, Directive, Input, Injectable, Optional, Inject, Component, ViewEncapsulation, ChangeDetectionStrategy, Output, ViewChild, SkipSelf, NgModule } from '@angular/core';
|
|
3
|
+
import { InjectionToken, forwardRef, Directive, Input, Injectable, Optional, Inject, Component, ViewEncapsulation, ChangeDetectionStrategy, Output, ViewChild, SkipSelf, ElementRef, NgModule } from '@angular/core';
|
|
4
4
|
import { Subject, of, Observable, fromEvent, animationFrameScheduler, asapScheduler, Subscription, isObservable } from 'rxjs';
|
|
5
5
|
import { distinctUntilChanged, auditTime, filter, takeUntil, startWith, pairwise, switchMap, shareReplay } from 'rxjs/operators';
|
|
6
6
|
import { DOCUMENT } from '@angular/common';
|
|
@@ -204,15 +204,15 @@ class CdkFixedSizeVirtualScroll {
|
|
|
204
204
|
this._scrollStrategy.updateItemAndBufferSize(this.itemSize, this.minBufferPx, this.maxBufferPx);
|
|
205
205
|
}
|
|
206
206
|
}
|
|
207
|
-
CdkFixedSizeVirtualScroll.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.
|
|
208
|
-
CdkFixedSizeVirtualScroll.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.0.
|
|
207
|
+
CdkFixedSizeVirtualScroll.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.1", ngImport: i0, type: CdkFixedSizeVirtualScroll, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
208
|
+
CdkFixedSizeVirtualScroll.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.0.1", type: CdkFixedSizeVirtualScroll, selector: "cdk-virtual-scroll-viewport[itemSize]", inputs: { itemSize: "itemSize", minBufferPx: "minBufferPx", maxBufferPx: "maxBufferPx" }, providers: [
|
|
209
209
|
{
|
|
210
210
|
provide: VIRTUAL_SCROLL_STRATEGY,
|
|
211
211
|
useFactory: _fixedSizeVirtualScrollStrategyFactory,
|
|
212
212
|
deps: [forwardRef(() => CdkFixedSizeVirtualScroll)],
|
|
213
213
|
},
|
|
214
214
|
], usesOnChanges: true, ngImport: i0 });
|
|
215
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.
|
|
215
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.1", ngImport: i0, type: CdkFixedSizeVirtualScroll, decorators: [{
|
|
216
216
|
type: Directive,
|
|
217
217
|
args: [{
|
|
218
218
|
selector: 'cdk-virtual-scroll-viewport[itemSize]',
|
|
@@ -375,9 +375,9 @@ class ScrollDispatcher {
|
|
|
375
375
|
}
|
|
376
376
|
}
|
|
377
377
|
}
|
|
378
|
-
ScrollDispatcher.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.
|
|
379
|
-
ScrollDispatcher.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.0.
|
|
380
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.
|
|
378
|
+
ScrollDispatcher.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.1", ngImport: i0, type: ScrollDispatcher, deps: [{ token: i0.NgZone }, { token: i1.Platform }, { token: DOCUMENT, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
379
|
+
ScrollDispatcher.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.0.1", ngImport: i0, type: ScrollDispatcher, providedIn: 'root' });
|
|
380
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.1", ngImport: i0, type: ScrollDispatcher, decorators: [{
|
|
381
381
|
type: Injectable,
|
|
382
382
|
args: [{ providedIn: 'root' }]
|
|
383
383
|
}], ctorParameters: function () {
|
|
@@ -538,9 +538,9 @@ class CdkScrollable {
|
|
|
538
538
|
}
|
|
539
539
|
}
|
|
540
540
|
}
|
|
541
|
-
CdkScrollable.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.
|
|
542
|
-
CdkScrollable.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.0.
|
|
543
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.
|
|
541
|
+
CdkScrollable.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.1", ngImport: i0, type: CdkScrollable, deps: [{ token: i0.ElementRef }, { token: ScrollDispatcher }, { token: i0.NgZone }, { token: i2.Directionality, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
|
|
542
|
+
CdkScrollable.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.0.1", type: CdkScrollable, selector: "[cdk-scrollable], [cdkScrollable]", ngImport: i0 });
|
|
543
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.1", ngImport: i0, type: CdkScrollable, decorators: [{
|
|
544
544
|
type: Directive,
|
|
545
545
|
args: [{
|
|
546
546
|
selector: '[cdk-scrollable], [cdkScrollable]',
|
|
@@ -551,6 +551,34 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0-rc.1", ng
|
|
|
551
551
|
}] }];
|
|
552
552
|
} });
|
|
553
553
|
|
|
554
|
+
const VIRTUAL_SCROLLABLE = new InjectionToken('VIRTUAL_SCROLLABLE');
|
|
555
|
+
/**
|
|
556
|
+
* Extending the {@link CdkScrollable} to be used as scrolling container for virtual scrolling.
|
|
557
|
+
*/
|
|
558
|
+
class CdkVirtualScrollable extends CdkScrollable {
|
|
559
|
+
constructor(elementRef, scrollDispatcher, ngZone, dir) {
|
|
560
|
+
super(elementRef, scrollDispatcher, ngZone, dir);
|
|
561
|
+
}
|
|
562
|
+
/**
|
|
563
|
+
* Measure the viewport size for the provided orientation.
|
|
564
|
+
*
|
|
565
|
+
* @param orientation The orientation to measure the size from.
|
|
566
|
+
*/
|
|
567
|
+
measureViewportSize(orientation) {
|
|
568
|
+
const viewportEl = this.elementRef.nativeElement;
|
|
569
|
+
return orientation === 'horizontal' ? viewportEl.clientWidth : viewportEl.clientHeight;
|
|
570
|
+
}
|
|
571
|
+
}
|
|
572
|
+
CdkVirtualScrollable.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.1", ngImport: i0, type: CdkVirtualScrollable, deps: [{ token: i0.ElementRef }, { token: ScrollDispatcher }, { token: i0.NgZone }, { token: i2.Directionality, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
|
|
573
|
+
CdkVirtualScrollable.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.0.1", type: CdkVirtualScrollable, usesInheritance: true, ngImport: i0 });
|
|
574
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.1", ngImport: i0, type: CdkVirtualScrollable, decorators: [{
|
|
575
|
+
type: Directive
|
|
576
|
+
}], ctorParameters: function () {
|
|
577
|
+
return [{ type: i0.ElementRef }, { type: ScrollDispatcher }, { type: i0.NgZone }, { type: i2.Directionality, decorators: [{
|
|
578
|
+
type: Optional
|
|
579
|
+
}] }];
|
|
580
|
+
} });
|
|
581
|
+
|
|
554
582
|
/** Time in ms to throttle the resize events by default. */
|
|
555
583
|
const DEFAULT_RESIZE_TIME = 20;
|
|
556
584
|
/**
|
|
@@ -671,9 +699,9 @@ class ViewportRuler {
|
|
|
671
699
|
: { width: 0, height: 0 };
|
|
672
700
|
}
|
|
673
701
|
}
|
|
674
|
-
ViewportRuler.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.
|
|
675
|
-
ViewportRuler.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.0.
|
|
676
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.
|
|
702
|
+
ViewportRuler.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.1", ngImport: i0, type: ViewportRuler, deps: [{ token: i1.Platform }, { token: i0.NgZone }, { token: DOCUMENT, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
703
|
+
ViewportRuler.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.0.1", ngImport: i0, type: ViewportRuler, providedIn: 'root' });
|
|
704
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.1", ngImport: i0, type: ViewportRuler, decorators: [{
|
|
677
705
|
type: Injectable,
|
|
678
706
|
args: [{ providedIn: 'root' }]
|
|
679
707
|
}], ctorParameters: function () {
|
|
@@ -696,12 +724,13 @@ function rangesEqual(r1, r2) {
|
|
|
696
724
|
*/
|
|
697
725
|
const SCROLL_SCHEDULER = typeof requestAnimationFrame !== 'undefined' ? animationFrameScheduler : asapScheduler;
|
|
698
726
|
/** A viewport that virtualizes its scrolling with the help of `CdkVirtualForOf`. */
|
|
699
|
-
class CdkVirtualScrollViewport extends
|
|
700
|
-
constructor(elementRef, _changeDetectorRef, ngZone, _scrollStrategy, dir, scrollDispatcher, viewportRuler) {
|
|
727
|
+
class CdkVirtualScrollViewport extends CdkVirtualScrollable {
|
|
728
|
+
constructor(elementRef, _changeDetectorRef, ngZone, _scrollStrategy, dir, scrollDispatcher, viewportRuler, scrollable) {
|
|
701
729
|
super(elementRef, scrollDispatcher, ngZone, dir);
|
|
702
730
|
this.elementRef = elementRef;
|
|
703
731
|
this._changeDetectorRef = _changeDetectorRef;
|
|
704
732
|
this._scrollStrategy = _scrollStrategy;
|
|
733
|
+
this.scrollable = scrollable;
|
|
705
734
|
/** Emits when the viewport is detached from a CdkVirtualForOf. */
|
|
706
735
|
this._detachedSubject = new Subject();
|
|
707
736
|
/** Emits when the rendered range changes. */
|
|
@@ -749,6 +778,11 @@ class CdkVirtualScrollViewport extends CdkScrollable {
|
|
|
749
778
|
this._viewportChanges = viewportRuler.change().subscribe(() => {
|
|
750
779
|
this.checkViewportSize();
|
|
751
780
|
});
|
|
781
|
+
if (!this.scrollable) {
|
|
782
|
+
// No scrollable is provided, so the virtual-scroll-viewport needs to become a scrollable
|
|
783
|
+
this.elementRef.nativeElement.classList.add('cdk-virtual-scrollable');
|
|
784
|
+
this.scrollable = this;
|
|
785
|
+
}
|
|
752
786
|
}
|
|
753
787
|
/** The direction the viewport scrolls. */
|
|
754
788
|
get orientation() {
|
|
@@ -771,7 +805,9 @@ class CdkVirtualScrollViewport extends CdkScrollable {
|
|
|
771
805
|
this._appendOnly = coerceBooleanProperty(value);
|
|
772
806
|
}
|
|
773
807
|
ngOnInit() {
|
|
774
|
-
|
|
808
|
+
if (this.scrollable === this) {
|
|
809
|
+
super.ngOnInit();
|
|
810
|
+
}
|
|
775
811
|
// It's still too early to measure the viewport at this point. Deferring with a promise allows
|
|
776
812
|
// the Viewport to be rendered with the correct size before we measure. We run this outside the
|
|
777
813
|
// zone to avoid causing more change detection cycles. We handle the change detection loop
|
|
@@ -779,7 +815,8 @@ class CdkVirtualScrollViewport extends CdkScrollable {
|
|
|
779
815
|
this.ngZone.runOutsideAngular(() => Promise.resolve().then(() => {
|
|
780
816
|
this._measureViewportSize();
|
|
781
817
|
this._scrollStrategy.attach(this);
|
|
782
|
-
this.
|
|
818
|
+
this.scrollable
|
|
819
|
+
.elementScrolled()
|
|
783
820
|
.pipe(
|
|
784
821
|
// Start off with a fake scroll event so we properly detect our initial position.
|
|
785
822
|
startWith(null),
|
|
@@ -841,6 +878,9 @@ class CdkVirtualScrollViewport extends CdkScrollable {
|
|
|
841
878
|
getRenderedRange() {
|
|
842
879
|
return this._renderedRange;
|
|
843
880
|
}
|
|
881
|
+
measureBoundingClientRectWithScrollOffset(from) {
|
|
882
|
+
return this.getElementRef().nativeElement.getBoundingClientRect()[from];
|
|
883
|
+
}
|
|
844
884
|
/**
|
|
845
885
|
* Sets the total size of all content (in pixels), including content that is not currently
|
|
846
886
|
* rendered.
|
|
@@ -921,7 +961,7 @@ class CdkVirtualScrollViewport extends CdkScrollable {
|
|
|
921
961
|
else {
|
|
922
962
|
options.top = offset;
|
|
923
963
|
}
|
|
924
|
-
this.scrollTo(options);
|
|
964
|
+
this.scrollable.scrollTo(options);
|
|
925
965
|
}
|
|
926
966
|
/**
|
|
927
967
|
* Scrolls to the offset for the given index.
|
|
@@ -932,14 +972,47 @@ class CdkVirtualScrollViewport extends CdkScrollable {
|
|
|
932
972
|
this._scrollStrategy.scrollToIndex(index, behavior);
|
|
933
973
|
}
|
|
934
974
|
/**
|
|
935
|
-
* Gets the current scroll offset from the start of the
|
|
975
|
+
* Gets the current scroll offset from the start of the scrollable (in pixels).
|
|
936
976
|
* @param from The edge to measure the offset from. Defaults to 'top' in vertical mode and 'start'
|
|
937
977
|
* in horizontal mode.
|
|
938
978
|
*/
|
|
939
979
|
measureScrollOffset(from) {
|
|
940
|
-
|
|
941
|
-
|
|
942
|
-
|
|
980
|
+
// This is to break the call cycle
|
|
981
|
+
let measureScrollOffset;
|
|
982
|
+
if (this.scrollable == this) {
|
|
983
|
+
measureScrollOffset = (_from) => super.measureScrollOffset(_from);
|
|
984
|
+
}
|
|
985
|
+
else {
|
|
986
|
+
measureScrollOffset = (_from) => this.scrollable.measureScrollOffset(_from);
|
|
987
|
+
}
|
|
988
|
+
return Math.max(0, measureScrollOffset(from !== null && from !== void 0 ? from : (this.orientation === 'horizontal' ? 'start' : 'top')) -
|
|
989
|
+
this.measureViewportOffset());
|
|
990
|
+
}
|
|
991
|
+
/**
|
|
992
|
+
* Measures the offset of the viewport from the scrolling container
|
|
993
|
+
* @param from The edge to measure from.
|
|
994
|
+
*/
|
|
995
|
+
measureViewportOffset(from) {
|
|
996
|
+
var _a;
|
|
997
|
+
let fromRect;
|
|
998
|
+
const LEFT = 'left';
|
|
999
|
+
const RIGHT = 'right';
|
|
1000
|
+
const isRtl = ((_a = this.dir) === null || _a === void 0 ? void 0 : _a.value) == 'rtl';
|
|
1001
|
+
if (from == 'start') {
|
|
1002
|
+
fromRect = isRtl ? RIGHT : LEFT;
|
|
1003
|
+
}
|
|
1004
|
+
else if (from == 'end') {
|
|
1005
|
+
fromRect = isRtl ? LEFT : RIGHT;
|
|
1006
|
+
}
|
|
1007
|
+
else if (from) {
|
|
1008
|
+
fromRect = from;
|
|
1009
|
+
}
|
|
1010
|
+
else {
|
|
1011
|
+
fromRect = this.orientation === 'horizontal' ? 'left' : 'top';
|
|
1012
|
+
}
|
|
1013
|
+
const scrollerClientRect = this.scrollable.measureBoundingClientRectWithScrollOffset(fromRect);
|
|
1014
|
+
const viewportClientRect = this.elementRef.nativeElement.getBoundingClientRect()[fromRect];
|
|
1015
|
+
return viewportClientRect - scrollerClientRect;
|
|
943
1016
|
}
|
|
944
1017
|
/** Measure the combined size of all of the rendered items. */
|
|
945
1018
|
measureRenderedContentSize() {
|
|
@@ -964,9 +1037,7 @@ class CdkVirtualScrollViewport extends CdkScrollable {
|
|
|
964
1037
|
}
|
|
965
1038
|
/** Measure the viewport size. */
|
|
966
1039
|
_measureViewportSize() {
|
|
967
|
-
|
|
968
|
-
this._viewportSize =
|
|
969
|
-
this.orientation === 'horizontal' ? viewportEl.clientWidth : viewportEl.clientHeight;
|
|
1040
|
+
this._viewportSize = this.scrollable.measureViewportSize(this.orientation);
|
|
970
1041
|
}
|
|
971
1042
|
/** Queue up change detection to run. */
|
|
972
1043
|
_markChangeDetectionNeeded(runAfter) {
|
|
@@ -1008,14 +1079,15 @@ class CdkVirtualScrollViewport extends CdkScrollable {
|
|
|
1008
1079
|
this.orientation === 'horizontal' ? `${this._totalContentSize}px` : '';
|
|
1009
1080
|
}
|
|
1010
1081
|
}
|
|
1011
|
-
CdkVirtualScrollViewport.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.
|
|
1012
|
-
CdkVirtualScrollViewport.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.
|
|
1082
|
+
CdkVirtualScrollViewport.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.1", ngImport: i0, type: CdkVirtualScrollViewport, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i0.NgZone }, { token: VIRTUAL_SCROLL_STRATEGY, optional: true }, { token: i2.Directionality, optional: true }, { token: ScrollDispatcher }, { token: ViewportRuler }, { token: VIRTUAL_SCROLLABLE, optional: true }], target: i0.ɵɵFactoryTarget.Component });
|
|
1083
|
+
CdkVirtualScrollViewport.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.1", type: CdkVirtualScrollViewport, selector: "cdk-virtual-scroll-viewport", inputs: { orientation: "orientation", appendOnly: "appendOnly" }, 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: [
|
|
1013
1084
|
{
|
|
1014
1085
|
provide: CdkScrollable,
|
|
1015
|
-
|
|
1086
|
+
useFactory: (virtualScrollable, viewport) => virtualScrollable || viewport,
|
|
1087
|
+
deps: [CdkVirtualScrollable, CdkVirtualScrollViewport],
|
|
1016
1088
|
},
|
|
1017
|
-
], 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;
|
|
1018
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.
|
|
1089
|
+
], 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 });
|
|
1090
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.1", ngImport: i0, type: CdkVirtualScrollViewport, decorators: [{
|
|
1019
1091
|
type: Component,
|
|
1020
1092
|
args: [{ selector: 'cdk-virtual-scroll-viewport', host: {
|
|
1021
1093
|
'class': 'cdk-virtual-scroll-viewport',
|
|
@@ -1024,9 +1096,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0-rc.1", ng
|
|
|
1024
1096
|
}, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [
|
|
1025
1097
|
{
|
|
1026
1098
|
provide: CdkScrollable,
|
|
1027
|
-
|
|
1099
|
+
useFactory: (virtualScrollable, viewport) => virtualScrollable || viewport,
|
|
1100
|
+
deps: [CdkVirtualScrollable, CdkVirtualScrollViewport],
|
|
1028
1101
|
},
|
|
1029
|
-
], 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;
|
|
1102
|
+
], 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}"] }]
|
|
1030
1103
|
}], ctorParameters: function () {
|
|
1031
1104
|
return [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: i0.NgZone }, { type: undefined, decorators: [{
|
|
1032
1105
|
type: Optional
|
|
@@ -1035,7 +1108,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0-rc.1", ng
|
|
|
1035
1108
|
args: [VIRTUAL_SCROLL_STRATEGY]
|
|
1036
1109
|
}] }, { type: i2.Directionality, decorators: [{
|
|
1037
1110
|
type: Optional
|
|
1038
|
-
}] }, { type: ScrollDispatcher }, { type: ViewportRuler }
|
|
1111
|
+
}] }, { type: ScrollDispatcher }, { type: ViewportRuler }, { type: CdkVirtualScrollable, decorators: [{
|
|
1112
|
+
type: Optional
|
|
1113
|
+
}, {
|
|
1114
|
+
type: Inject,
|
|
1115
|
+
args: [VIRTUAL_SCROLLABLE]
|
|
1116
|
+
}] }];
|
|
1039
1117
|
}, propDecorators: { orientation: [{
|
|
1040
1118
|
type: Input
|
|
1041
1119
|
}], appendOnly: [{
|
|
@@ -1313,9 +1391,9 @@ class CdkVirtualForOf {
|
|
|
1313
1391
|
};
|
|
1314
1392
|
}
|
|
1315
1393
|
}
|
|
1316
|
-
CdkVirtualForOf.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.
|
|
1317
|
-
CdkVirtualForOf.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.0.
|
|
1318
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.
|
|
1394
|
+
CdkVirtualForOf.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.1", ngImport: i0, type: CdkVirtualForOf, deps: [{ token: i0.ViewContainerRef }, { token: i0.TemplateRef }, { token: i0.IterableDiffers }, { token: _VIEW_REPEATER_STRATEGY }, { token: CdkVirtualScrollViewport, skipSelf: true }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Directive });
|
|
1395
|
+
CdkVirtualForOf.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.0.1", type: CdkVirtualForOf, selector: "[cdkVirtualFor][cdkVirtualForOf]", inputs: { cdkVirtualForOf: "cdkVirtualForOf", cdkVirtualForTrackBy: "cdkVirtualForTrackBy", cdkVirtualForTemplate: "cdkVirtualForTemplate", cdkVirtualForTemplateCacheSize: "cdkVirtualForTemplateCacheSize" }, providers: [{ provide: _VIEW_REPEATER_STRATEGY, useClass: _RecycleViewRepeaterStrategy }], ngImport: i0 });
|
|
1396
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.1", ngImport: i0, type: CdkVirtualForOf, decorators: [{
|
|
1319
1397
|
type: Directive,
|
|
1320
1398
|
args: [{
|
|
1321
1399
|
selector: '[cdkVirtualFor][cdkVirtualForOf]',
|
|
@@ -1338,6 +1416,61 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0-rc.1", ng
|
|
|
1338
1416
|
type: Input
|
|
1339
1417
|
}] } });
|
|
1340
1418
|
|
|
1419
|
+
/**
|
|
1420
|
+
* Provides a virtual scrollable for the element it is attached to.
|
|
1421
|
+
*/
|
|
1422
|
+
class CdkVirtualScrollableElement extends CdkVirtualScrollable {
|
|
1423
|
+
constructor(elementRef, scrollDispatcher, ngZone, dir) {
|
|
1424
|
+
super(elementRef, scrollDispatcher, ngZone, dir);
|
|
1425
|
+
}
|
|
1426
|
+
measureBoundingClientRectWithScrollOffset(from) {
|
|
1427
|
+
return (this.getElementRef().nativeElement.getBoundingClientRect()[from] -
|
|
1428
|
+
this.measureScrollOffset(from));
|
|
1429
|
+
}
|
|
1430
|
+
}
|
|
1431
|
+
CdkVirtualScrollableElement.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.1", ngImport: i0, type: CdkVirtualScrollableElement, deps: [{ token: i0.ElementRef }, { token: ScrollDispatcher }, { token: i0.NgZone }, { token: i2.Directionality, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
|
|
1432
|
+
CdkVirtualScrollableElement.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.0.1", type: CdkVirtualScrollableElement, selector: "[cdkVirtualScrollingElement]", host: { classAttribute: "cdk-virtual-scrollable" }, providers: [{ provide: VIRTUAL_SCROLLABLE, useExisting: CdkVirtualScrollableElement }], usesInheritance: true, ngImport: i0 });
|
|
1433
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.1", ngImport: i0, type: CdkVirtualScrollableElement, decorators: [{
|
|
1434
|
+
type: Directive,
|
|
1435
|
+
args: [{
|
|
1436
|
+
selector: '[cdkVirtualScrollingElement]',
|
|
1437
|
+
providers: [{ provide: VIRTUAL_SCROLLABLE, useExisting: CdkVirtualScrollableElement }],
|
|
1438
|
+
host: {
|
|
1439
|
+
'class': 'cdk-virtual-scrollable',
|
|
1440
|
+
},
|
|
1441
|
+
}]
|
|
1442
|
+
}], ctorParameters: function () {
|
|
1443
|
+
return [{ type: i0.ElementRef }, { type: ScrollDispatcher }, { type: i0.NgZone }, { type: i2.Directionality, decorators: [{
|
|
1444
|
+
type: Optional
|
|
1445
|
+
}] }];
|
|
1446
|
+
} });
|
|
1447
|
+
|
|
1448
|
+
/**
|
|
1449
|
+
* Provides as virtual scrollable for the global / window scrollbar.
|
|
1450
|
+
*/
|
|
1451
|
+
class CdkVirtualScrollableWindow extends CdkVirtualScrollable {
|
|
1452
|
+
constructor(scrollDispatcher, ngZone, dir) {
|
|
1453
|
+
super(new ElementRef(document.documentElement), scrollDispatcher, ngZone, dir);
|
|
1454
|
+
this._elementScrolled = new Observable((observer) => this.ngZone.runOutsideAngular(() => fromEvent(document, 'scroll').pipe(takeUntil(this._destroyed)).subscribe(observer)));
|
|
1455
|
+
}
|
|
1456
|
+
measureBoundingClientRectWithScrollOffset(from) {
|
|
1457
|
+
return this.getElementRef().nativeElement.getBoundingClientRect()[from];
|
|
1458
|
+
}
|
|
1459
|
+
}
|
|
1460
|
+
CdkVirtualScrollableWindow.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.1", ngImport: i0, type: CdkVirtualScrollableWindow, deps: [{ token: ScrollDispatcher }, { token: i0.NgZone }, { token: i2.Directionality, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
|
|
1461
|
+
CdkVirtualScrollableWindow.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.0.1", type: CdkVirtualScrollableWindow, selector: "cdk-virtual-scroll-viewport[scrollWindow]", providers: [{ provide: VIRTUAL_SCROLLABLE, useExisting: CdkVirtualScrollableWindow }], usesInheritance: true, ngImport: i0 });
|
|
1462
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.1", ngImport: i0, type: CdkVirtualScrollableWindow, decorators: [{
|
|
1463
|
+
type: Directive,
|
|
1464
|
+
args: [{
|
|
1465
|
+
selector: 'cdk-virtual-scroll-viewport[scrollWindow]',
|
|
1466
|
+
providers: [{ provide: VIRTUAL_SCROLLABLE, useExisting: CdkVirtualScrollableWindow }],
|
|
1467
|
+
}]
|
|
1468
|
+
}], ctorParameters: function () {
|
|
1469
|
+
return [{ type: ScrollDispatcher }, { type: i0.NgZone }, { type: i2.Directionality, decorators: [{
|
|
1470
|
+
type: Optional
|
|
1471
|
+
}] }];
|
|
1472
|
+
} });
|
|
1473
|
+
|
|
1341
1474
|
/**
|
|
1342
1475
|
* @license
|
|
1343
1476
|
* Copyright Google LLC All Rights Reserved.
|
|
@@ -1347,10 +1480,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0-rc.1", ng
|
|
|
1347
1480
|
*/
|
|
1348
1481
|
class CdkScrollableModule {
|
|
1349
1482
|
}
|
|
1350
|
-
CdkScrollableModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.
|
|
1351
|
-
CdkScrollableModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.0.
|
|
1352
|
-
CdkScrollableModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.0.
|
|
1353
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.
|
|
1483
|
+
CdkScrollableModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.1", ngImport: i0, type: CdkScrollableModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
1484
|
+
CdkScrollableModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.0.1", ngImport: i0, type: CdkScrollableModule, declarations: [CdkScrollable], exports: [CdkScrollable] });
|
|
1485
|
+
CdkScrollableModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.0.1", ngImport: i0, type: CdkScrollableModule });
|
|
1486
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.1", ngImport: i0, type: CdkScrollableModule, decorators: [{
|
|
1354
1487
|
type: NgModule,
|
|
1355
1488
|
args: [{
|
|
1356
1489
|
exports: [CdkScrollable],
|
|
@@ -1362,12 +1495,18 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0-rc.1", ng
|
|
|
1362
1495
|
*/
|
|
1363
1496
|
class ScrollingModule {
|
|
1364
1497
|
}
|
|
1365
|
-
ScrollingModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.
|
|
1366
|
-
ScrollingModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.0.
|
|
1498
|
+
ScrollingModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.1", ngImport: i0, type: ScrollingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
1499
|
+
ScrollingModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.0.1", ngImport: i0, type: ScrollingModule, declarations: [CdkFixedSizeVirtualScroll,
|
|
1500
|
+
CdkVirtualForOf,
|
|
1501
|
+
CdkVirtualScrollViewport,
|
|
1502
|
+
CdkVirtualScrollableWindow,
|
|
1503
|
+
CdkVirtualScrollableElement], imports: [BidiModule, CdkScrollableModule], exports: [BidiModule, CdkScrollableModule, CdkFixedSizeVirtualScroll,
|
|
1367
1504
|
CdkVirtualForOf,
|
|
1368
|
-
CdkVirtualScrollViewport
|
|
1369
|
-
|
|
1370
|
-
|
|
1505
|
+
CdkVirtualScrollViewport,
|
|
1506
|
+
CdkVirtualScrollableWindow,
|
|
1507
|
+
CdkVirtualScrollableElement] });
|
|
1508
|
+
ScrollingModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.0.1", ngImport: i0, type: ScrollingModule, imports: [BidiModule, CdkScrollableModule, BidiModule, CdkScrollableModule] });
|
|
1509
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.1", ngImport: i0, type: ScrollingModule, decorators: [{
|
|
1371
1510
|
type: NgModule,
|
|
1372
1511
|
args: [{
|
|
1373
1512
|
imports: [BidiModule, CdkScrollableModule],
|
|
@@ -1377,8 +1516,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0-rc.1", ng
|
|
|
1377
1516
|
CdkFixedSizeVirtualScroll,
|
|
1378
1517
|
CdkVirtualForOf,
|
|
1379
1518
|
CdkVirtualScrollViewport,
|
|
1519
|
+
CdkVirtualScrollableWindow,
|
|
1520
|
+
CdkVirtualScrollableElement,
|
|
1521
|
+
],
|
|
1522
|
+
declarations: [
|
|
1523
|
+
CdkFixedSizeVirtualScroll,
|
|
1524
|
+
CdkVirtualForOf,
|
|
1525
|
+
CdkVirtualScrollViewport,
|
|
1526
|
+
CdkVirtualScrollableWindow,
|
|
1527
|
+
CdkVirtualScrollableElement,
|
|
1380
1528
|
],
|
|
1381
|
-
declarations: [CdkFixedSizeVirtualScroll, CdkVirtualForOf, CdkVirtualScrollViewport],
|
|
1382
1529
|
}]
|
|
1383
1530
|
}] });
|
|
1384
1531
|
|
|
@@ -1402,5 +1549,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0-rc.1", ng
|
|
|
1402
1549
|
* Generated bundle index. Do not edit.
|
|
1403
1550
|
*/
|
|
1404
1551
|
|
|
1405
|
-
export { CdkFixedSizeVirtualScroll, CdkScrollable, CdkScrollableModule, CdkVirtualForOf, CdkVirtualScrollViewport, DEFAULT_RESIZE_TIME, DEFAULT_SCROLL_TIME, FixedSizeVirtualScrollStrategy, ScrollDispatcher, ScrollingModule, VIRTUAL_SCROLL_STRATEGY, ViewportRuler, _fixedSizeVirtualScrollStrategyFactory };
|
|
1552
|
+
export { CdkFixedSizeVirtualScroll, CdkScrollable, CdkScrollableModule, CdkVirtualForOf, CdkVirtualScrollViewport, CdkVirtualScrollable, CdkVirtualScrollableElement, CdkVirtualScrollableWindow, DEFAULT_RESIZE_TIME, DEFAULT_SCROLL_TIME, FixedSizeVirtualScrollStrategy, ScrollDispatcher, ScrollingModule, VIRTUAL_SCROLLABLE, VIRTUAL_SCROLL_STRATEGY, ViewportRuler, _fixedSizeVirtualScrollStrategyFactory };
|
|
1406
1553
|
//# sourceMappingURL=scrolling.mjs.map
|