blob: 2be57680e90df1ae32ab7f6e6e7e491aecf2992e [file] [log] [blame]
import { Observable } from 'rxjs/Observable';
import { BreakPoint } from '../breakpoints/break-point';
import { BreakPointRegistry } from '../breakpoints/break-point-registry';
import { MatchMedia } from '../match-media/match-media';
import { MediaChange } from '../media-change';
/**
* MediaMonitor uses the MatchMedia service to observe mediaQuery changes (both activations and
* deactivations). These changes are are published as MediaChange notifications.
*
* Note: all notifications will be performed within the
* ng Zone to trigger change detections and component updates.
*
* It is the MediaMonitor that:
* - auto registers all known breakpoints
* - injects alias information into each raw MediaChange event
* - provides accessor to the currently active BreakPoint
* - publish list of overlapping BreakPoint(s); used by ResponsiveActivation
*/
export declare class MediaMonitor {
private _breakpoints;
private _matchMedia;
constructor(_breakpoints: BreakPointRegistry, _matchMedia: MatchMedia);
/**
* Read-only accessor to the list of breakpoints configured in the BreakPointRegistry provider
*/
readonly breakpoints: BreakPoint[];
readonly activeOverlaps: BreakPoint[];
readonly active: BreakPoint | null;
/**
* For the specified mediaQuery alias, is the mediaQuery range active?
*/
isActive(alias: string): boolean;
/**
* External observers can watch for all (or a specific) mql changes.
* If specific breakpoint is observed, only return *activated* events
* otherwise return all events for BOTH activated + deactivated changes.
*/
observe(alias?: string): Observable<MediaChange>;
/**
* Immediate calls to matchMedia() to establish listeners
* and prepare for immediate subscription notifications
*/
private _registerBreakpoints();
}