File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 11export * from './color-scheme' ;
22export * from './color-scheme-observer' ;
33export * from './named-breakpoint-observer' ;
4+ export * from './resize-observer' ;
Original file line number Diff line number Diff line change 1+ import { Injectable } from '@angular/core' ;
2+ import { Observable } from 'rxjs' ;
3+
4+ /**
5+ * Service that provides a stream of ResizeObserverEntry arrays for the given element.
6+ * Uses the native ResizeObserver API.
7+ */
8+ @Injectable ( { providedIn : 'root' } )
9+ export class ResizeObserver {
10+ /**
11+ * Observes the given element and returns a stream of ResizeObserverEntry arrays.
12+ */
13+ observe ( element : HTMLElement ) : Observable < ResizeObserverEntry [ ] > {
14+ return new Observable ( ( observer ) => {
15+ const instance = new window . ResizeObserver ( ( e ) => observer . next ( e ) ) ;
16+ instance . observe ( element ) ;
17+ return ( ) => instance . disconnect ( ) ;
18+ } ) ;
19+ }
20+ }
You can’t perform that action at this time.
0 commit comments