ngx-foldable
Version:
Angular library to help you build dual-screen experiences for foldable or dual-screen devices
60 lines (59 loc) • 1.76 kB
TypeScript
import { OnDestroy } from '@angular/core';
import { Observable } from 'rxjs';
import { ScreenSpanning } from './screen-spanning';
import * as i0 from "@angular/core";
declare global {
interface Window {
getWindowSegments: () => DOMRect[];
}
}
/**
* Holds information about the device screen context.
*/
export interface ScreenContextData {
/** The list of available window segments. */
readonly windowSegments: DOMRect[];
/** The current screen spanning mode. */
readonly screenSpanning: ScreenSpanning;
/** True is current device have multiple screens available. */
readonly isMultiScreen: boolean;
}
/**
* This service allows to query and receive updates about current device's
* screen context.
*
* See {@link ScreenContextData}
*/
export declare class ScreenContext implements ScreenContextData, OnDestroy {
private currentContext;
private screenContext$;
private destroyed$;
constructor();
/** @ignored */
ngOnDestroy(): void;
/**
* The list of available window segments.
*/
get windowSegments(): DOMRect[];
/**
* The current screen spanning mode.
*/
get screenSpanning(): ScreenSpanning;
/**
* True is current device have multiple screens available.
*/
get isMultiScreen(): boolean;
/**
* Gets an observable emitting when the screen context changes.
*/
asObservable(): Observable<ScreenContextData>;
/**
* Gets the current screen context.
*/
asObject(): ScreenContextData;
private getScreenContext;
private getScreenSpanning;
private getWindowSegments;
static ɵfac: i0.ɵɵFactoryDeclaration<ScreenContext, never>;
static ɵprov: i0.ɵɵInjectableDeclaration<ScreenContext>;
}