import { DestroyRef, Injectable, inject } from '@angular/core'; import { takeUntilDestroyed } from '@angular/core/rxjs-interop'; import { BehaviorSubject, fromEvent } from 'rxjs'; import { debounceTime, map, startWith, tap } from 'rxjs/operators'; import * as i0 from "@angular/core"; export class ScreenSizeService { constructor() { this.destroyRef = inject(DestroyRef); this.screenSizeSubject = new BehaviorSubject(this.getScreenSize()); this.screenSize$ = this.screenSizeSubject.asObservable(); fromEvent(window, 'resize') .pipe(debounceTime(50), map(() => this.getScreenSize()), startWith(this.getScreenSize()), tap(() => console.log('test')), takeUntilDestroyed(this.destroyRef)) .subscribe(this.screenSizeSubject); } getScreenSize() { const width = window.innerWidth; if (width < 640) return 'xs'; if (width >= 640 && width < 768) return 'sm'; if (width >= 768 && width < 1024) return 'md'; if (width >= 1024 && width < 1280) return 'lg'; if (width >= 1280 && width < 1536) return 'xl'; return '2xl'; } static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.2", ngImport: i0, type: ScreenSizeService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); } static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.2", ngImport: i0, type: ScreenSizeService, providedIn: 'root' }); } } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.2", ngImport: i0, type: ScreenSizeService, decorators: [{ type: Injectable, args: [{ providedIn: 'root', }] }], ctorParameters: () => [] }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NyZWVuLXNpemUuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NpcmNsZXRvbmUvc3JjL2xpYi9zZXJ2aWNlcy9zY3JlZW4tc2l6ZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsZUFBZSxFQUFFLFNBQVMsRUFBYyxNQUFNLE1BQU0sQ0FBQztBQUM5RCxPQUFPLEVBQUUsWUFBWSxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7O0FBS25FLE1BQU0sT0FBTyxpQkFBaUI7SUFLNUI7UUFKUSxlQUFVLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ2hDLHNCQUFpQixHQUFHLElBQUksZUFBZSxDQUFTLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQyxDQUFDO1FBQzlFLGdCQUFXLEdBQXVCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUd0RSxTQUFTLENBQUMsTUFBTSxFQUFFLFFBQVEsQ0FBQzthQUN4QixJQUFJLENBQ0gsWUFBWSxDQUFDLEVBQUUsQ0FBQyxFQUNoQixHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDLEVBQy9CLFNBQVMsQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUMsRUFDL0IsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsRUFDOUIsa0JBQWtCLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUNwQzthQUNBLFNBQVMsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQztJQUN2QyxDQUFDO0lBRU8sYUFBYTtRQUNuQixNQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDO1FBQ2hDLElBQUksS0FBSyxHQUFHLEdBQUc7WUFBRSxPQUFPLElBQUksQ0FBQztRQUM3QixJQUFJLEtBQUssSUFBSSxHQUFHLElBQUksS0FBSyxHQUFHLEdBQUc7WUFBRSxPQUFPLElBQUksQ0FBQztRQUM3QyxJQUFJLEtBQUssSUFBSSxHQUFHLElBQUksS0FBSyxHQUFHLElBQUk7WUFBRSxPQUFPLElBQUksQ0FBQztRQUM5QyxJQUFJLEtBQUssSUFBSSxJQUFJLElBQUksS0FBSyxHQUFHLElBQUk7WUFBRSxPQUFPLElBQUksQ0FBQztRQUMvQyxJQUFJLEtBQUssSUFBSSxJQUFJLElBQUksS0FBSyxHQUFHLElBQUk7WUFBRSxPQUFPLElBQUksQ0FBQztRQUMvQyxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7OEdBekJVLGlCQUFpQjtrSEFBakIsaUJBQWlCLGNBRmhCLE1BQU07OzJGQUVQLGlCQUFpQjtrQkFIN0IsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEZXN0cm95UmVmLCBJbmplY3RhYmxlLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHRha2VVbnRpbERlc3Ryb3llZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgZnJvbUV2ZW50LCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIG1hcCwgc3RhcnRXaXRoLCB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBTY3JlZW5TaXplU2VydmljZSB7XG4gIHByaXZhdGUgZGVzdHJveVJlZiA9IGluamVjdChEZXN0cm95UmVmKTtcbiAgcHJpdmF0ZSBzY3JlZW5TaXplU3ViamVjdCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8c3RyaW5nPih0aGlzLmdldFNjcmVlblNpemUoKSk7XG4gIHNjcmVlblNpemUkOiBPYnNlcnZhYmxlPHN0cmluZz4gPSB0aGlzLnNjcmVlblNpemVTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIGZyb21FdmVudCh3aW5kb3csICdyZXNpemUnKVxuICAgICAgLnBpcGUoXG4gICAgICAgIGRlYm91bmNlVGltZSg1MCksXG4gICAgICAgIG1hcCgoKSA9PiB0aGlzLmdldFNjcmVlblNpemUoKSksXG4gICAgICAgIHN0YXJ0V2l0aCh0aGlzLmdldFNjcmVlblNpemUoKSksXG4gICAgICAgIHRhcCgoKSA9PiBjb25zb2xlLmxvZygndGVzdCcpKSxcbiAgICAgICAgdGFrZVVudGlsRGVzdHJveWVkKHRoaXMuZGVzdHJveVJlZilcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUodGhpcy5zY3JlZW5TaXplU3ViamVjdCk7XG4gIH1cblxuICBwcml2YXRlIGdldFNjcmVlblNpemUoKTogc3RyaW5nIHtcbiAgICBjb25zdCB3aWR0aCA9IHdpbmRvdy5pbm5lcldpZHRoO1xuICAgIGlmICh3aWR0aCA8IDY0MCkgcmV0dXJuICd4cyc7XG4gICAgaWYgKHdpZHRoID49IDY0MCAmJiB3aWR0aCA8IDc2OCkgcmV0dXJuICdzbSc7XG4gICAgaWYgKHdpZHRoID49IDc2OCAmJiB3aWR0aCA8IDEwMjQpIHJldHVybiAnbWQnO1xuICAgIGlmICh3aWR0aCA+PSAxMDI0ICYmIHdpZHRoIDwgMTI4MCkgcmV0dXJuICdsZyc7XG4gICAgaWYgKHdpZHRoID49IDEyODAgJiYgd2lkdGggPCAxNTM2KSByZXR1cm4gJ3hsJztcbiAgICByZXR1cm4gJzJ4bCc7XG4gIH1cbn1cbiJdfQ==