UNPKG

@obliczeniowo/elementary

Version:
64 lines (60 loc) 1.89 kB
import * as i0 from '@angular/core'; import { Injectable } from '@angular/core'; import { BehaviorSubject } from 'rxjs'; /** * Service that let you easy react on change of window size * * @example * * constructor(public resize: OblResizeService) { } * * ngOnInit(): void { * this.subscription = this.resize.resized.subscribe((size: Size) => { * this.resize(size); * }); * } * * ngOnDestroy(): void { * if (this.subscription && !this.subscription.closed) { * this.subscription.unsubscribe(); * } * } * * resize(size: Size): void { * console.log(size); * } */ class OblResizeWindowService { /** current window size */ size = { width: window.innerWidth, height: window.innerHeight }; /** * triggered on window size change */ resized = new BehaviorSubject(this.size); constructor() { window.addEventListener('resize', () => this.resize()); } resize() { this.size = { width: window.innerWidth, height: window.innerHeight }; this.resized.next(this.size); } static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.4", ngImport: i0, type: OblResizeWindowService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.4", ngImport: i0, type: OblResizeWindowService, providedIn: 'root' }); } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.4", ngImport: i0, type: OblResizeWindowService, decorators: [{ type: Injectable, args: [{ providedIn: 'root' }] }], ctorParameters: () => [] }); /** * Generated bundle index. Do not edit. */ export { OblResizeWindowService }; //# sourceMappingURL=obliczeniowo-elementary-resize-window.mjs.map