# HG changeset patch # User Lucas Thompson # Date 1493913477 -3600 # Node ID f0c9c9d860e72dfe1939eb74c023f7d4b2fef97a # Parent a2ba82a511158f86aed06f5ed099e7d4d71aefc5 Introduce app level, injectable, observable for dimension changes. diff -r a2ba82a51115 -r f0c9c9d860e7 src/app/app.module.ts --- a/src/app/app.module.ts Thu May 04 15:33:20 2017 +0100 +++ b/src/app/app.module.ts Thu May 04 16:57:57 2017 +0100 @@ -28,6 +28,7 @@ import {AnalysisItemComponent} from './analysis-item/analysis-item.component'; import {ProgressBarComponent} from './progress-bar/progress-bar'; import {UglyMaterialModule} from './ugly-material.module'; +import {Observable} from 'rxjs/Observable'; export function createAudioContext(): AudioContext { return new ( @@ -92,6 +93,16 @@ }; } +export interface Dimension { + width: number; + height: number; +} +export function createWindowDimensionObservable(): Observable { + return Observable.fromEvent(window, 'resize', () => ({ + height: window.innerHeight, + width: window.innerWidth + })).share(); +} @NgModule({ declarations: [ AppComponent, @@ -121,7 +132,8 @@ {provide: 'MediaRecorderFactory', useFactory: createMediaRecorderFactory}, {provide: 'PiperRepoUri', useValue: 'assets/remote-extractors.json'}, {provide: 'UrlResourceLifetimeManager', useFactory: createUrlResourceManager}, - {provide: 'ResourceReader', useFactory: createResourceReader} + {provide: 'ResourceReader', useFactory: createResourceReader}, + {provide: 'DimensionObservable', useFactory: createWindowDimensionObservable} ], bootstrap: [AppComponent] })