@@ -35,7 +35,6 @@ import {
3535 asapScheduler ,
3636 Observable ,
3737 Observer ,
38- OperatorFunction ,
3938 Subject ,
4039 Subscription ,
4140} from 'rxjs' ;
@@ -103,15 +102,7 @@ export class CdkVirtualScrollViewport extends CdkVirtualScrollable implements On
103102
104103 /** Emits when the rendered range changes. */
105104 private readonly _renderedRangeSubject = new Subject < ListRange > ( ) ;
106-
107- /**
108- * Emits the offset from the start of the viewport to the start of the rendered data (in pixels).
109- */
110- private readonly _renderedContentOffsetRenderedSubject = new Subject < number | null > ( ) ;
111- readonly _renderedContentOffsetRendered = this . _renderedContentOffsetRenderedSubject . pipe (
112- filter ( offset => offset !== null ) as OperatorFunction < number | null , number > ,
113- distinctUntilChanged ( ) ,
114- ) ;
105+ private readonly _renderedContentOffsetSubject = new Subject < number | null > ( ) ;
115106
116107 /** The direction the viewport scrolls. */
117108 @Input ( )
@@ -151,6 +142,14 @@ export class CdkVirtualScrollViewport extends CdkVirtualScrollable implements On
151142 /** A stream that emits whenever the rendered range changes. */
152143 readonly renderedRangeStream : Observable < ListRange > = this . _renderedRangeSubject ;
153144
145+ /**
146+ * Emits the offset from the start of the viewport to the start of the rendered data (in pixels).
147+ */
148+ readonly renderedContentOffset : Observable < number > = this . _renderedContentOffsetSubject . pipe (
149+ filter ( offset => offset !== null ) ,
150+ distinctUntilChanged ( ) ,
151+ ) ;
152+
154153 /**
155154 * The total size of all content (in pixels), including content that is not currently rendered.
156155 */
@@ -547,10 +546,7 @@ export class CdkVirtualScrollViewport extends CdkVirtualScrollable implements On
547546 // string literals, a variable that can only be 'X' or 'Y', and user input that is run through
548547 // the `Number` function first to coerce it to a numeric value.
549548 this . _contentWrapper . nativeElement . style . transform = this . _renderedContentTransform ;
550-
551- // Emit the offset to rendered content start when it is in sync with what is rendered in the
552- // DOM.
553- this . _renderedContentOffsetRenderedSubject . next ( this . getOffsetToRenderedContentStart ( ) ) ;
549+ this . _renderedContentOffsetSubject . next ( this . getOffsetToRenderedContentStart ( ) ) ;
554550
555551 afterNextRender (
556552 ( ) => {
0 commit comments