@obliczeniowo/elementary
Version:
Library made in Angular version 20
64 lines (60 loc) • 1.89 kB
JavaScript
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