UNPKG

@junte/ui

Version:

Quality Angular UI components kit

38 lines 4.62 kB
import { __decorate, __metadata } from "tslib"; import { EventEmitter, Injectable, NgZone } from '@angular/core'; import { Breakpoint } from '../../core/enums/breakpoint'; let BreakpointService = class BreakpointService { constructor(zone) { this.queries = { [Breakpoint.mobile]: window.matchMedia(`(max-width: 768px)`), [Breakpoint.tablet]: window.matchMedia(`(min-width: 769px) and (max-width: 992px)`), [Breakpoint.desktop]: window.matchMedia(`(min-width: 993px) and (max-width: 1200px)`), [Breakpoint.wide]: window.matchMedia(`(min-width: 1201px)`) }; this.current = null; this.changed = new EventEmitter(null); for (const i of Object.keys(this.queries)) { const breakpoint = i; const query = this.queries[i]; const checker = q => { if (q.matches) { zone.run(() => { this.current = breakpoint; this.changed.emit(breakpoint); }); } }; checker(query); query.addListener(q => checker(q)); } } }; BreakpointService.ctorParameters = () => [ { type: NgZone } ]; BreakpointService = __decorate([ Injectable(), __metadata("design:paramtypes", [NgZone]) ], BreakpointService); export { BreakpointService }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJlYWtwb2ludC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGp1bnRlL3VpLyIsInNvdXJjZXMiOlsibGliL2xheW91dC9yZXNwb25zaXZlL2JyZWFrcG9pbnQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2pFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUd6RCxJQUFhLGlCQUFpQixHQUE5QixNQUFhLGlCQUFpQjtJQVk1QixZQUFZLElBQVk7UUFWaEIsWUFBTyxHQUFHO1lBQ2hCLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxFQUFFLE1BQU0sQ0FBQyxVQUFVLENBQUMsb0JBQW9CLENBQUM7WUFDNUQsQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLEVBQUUsTUFBTSxDQUFDLFVBQVUsQ0FBQywyQ0FBMkMsQ0FBQztZQUNuRixDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsRUFBRSxNQUFNLENBQUMsVUFBVSxDQUFDLDRDQUE0QyxDQUFDO1lBQ3JGLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxFQUFFLE1BQU0sQ0FBQyxVQUFVLENBQUMscUJBQXFCLENBQUM7U0FDNUQsQ0FBQztRQUVGLFlBQU8sR0FBZSxJQUFJLENBQUM7UUFDM0IsWUFBTyxHQUFHLElBQUksWUFBWSxDQUFhLElBQUksQ0FBQyxDQUFDO1FBRzNDLEtBQUssTUFBTSxDQUFDLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEVBQUU7WUFDekMsTUFBTSxVQUFVLEdBQUcsQ0FBZSxDQUFDO1lBQ25DLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDOUIsTUFBTSxPQUFPLEdBQUcsQ0FBQyxDQUFDLEVBQUU7Z0JBQ2xCLElBQUksQ0FBQyxDQUFDLE9BQU8sRUFBRTtvQkFDYixJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRTt3QkFDWixJQUFJLENBQUMsT0FBTyxHQUFHLFVBQVUsQ0FBQzt3QkFDMUIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7b0JBQ2hDLENBQUMsQ0FBQyxDQUFDO2lCQUNKO1lBQ0gsQ0FBQyxDQUFDO1lBQ0YsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ2YsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQ3BDO0lBQ0gsQ0FBQztDQUNGLENBQUE7O1lBaEJtQixNQUFNOztBQVpiLGlCQUFpQjtJQUQ3QixVQUFVLEVBQUU7cUNBYU8sTUFBTTtHQVpiLGlCQUFpQixDQTRCN0I7U0E1QlksaUJBQWlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRXZlbnRFbWl0dGVyLCBJbmplY3RhYmxlLCBOZ1pvbmUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEJyZWFrcG9pbnQgfSBmcm9tICcuLi8uLi9jb3JlL2VudW1zL2JyZWFrcG9pbnQnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgQnJlYWtwb2ludFNlcnZpY2Uge1xuXG4gIHByaXZhdGUgcXVlcmllcyA9IHtcbiAgICBbQnJlYWtwb2ludC5tb2JpbGVdOiB3aW5kb3cubWF0Y2hNZWRpYShgKG1heC13aWR0aDogNzY4cHgpYCksXG4gICAgW0JyZWFrcG9pbnQudGFibGV0XTogd2luZG93Lm1hdGNoTWVkaWEoYChtaW4td2lkdGg6IDc2OXB4KSBhbmQgKG1heC13aWR0aDogOTkycHgpYCksXG4gICAgW0JyZWFrcG9pbnQuZGVza3RvcF06IHdpbmRvdy5tYXRjaE1lZGlhKGAobWluLXdpZHRoOiA5OTNweCkgYW5kIChtYXgtd2lkdGg6IDEyMDBweClgKSxcbiAgICBbQnJlYWtwb2ludC53aWRlXTogd2luZG93Lm1hdGNoTWVkaWEoYChtaW4td2lkdGg6IDEyMDFweClgKVxuICB9O1xuXG4gIGN1cnJlbnQ6IEJyZWFrcG9pbnQgPSBudWxsO1xuICBjaGFuZ2VkID0gbmV3IEV2ZW50RW1pdHRlcjxCcmVha3BvaW50PihudWxsKTtcblxuICBjb25zdHJ1Y3Rvcih6b25lOiBOZ1pvbmUpIHtcbiAgICBmb3IgKGNvbnN0IGkgb2YgT2JqZWN0LmtleXModGhpcy5xdWVyaWVzKSkge1xuICAgICAgY29uc3QgYnJlYWtwb2ludCA9IGkgYXMgQnJlYWtwb2ludDtcbiAgICAgIGNvbnN0IHF1ZXJ5ID0gdGhpcy5xdWVyaWVzW2ldO1xuICAgICAgY29uc3QgY2hlY2tlciA9IHEgPT4ge1xuICAgICAgICBpZiAocS5tYXRjaGVzKSB7XG4gICAgICAgICAgem9uZS5ydW4oKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5jdXJyZW50ID0gYnJlYWtwb2ludDtcbiAgICAgICAgICAgIHRoaXMuY2hhbmdlZC5lbWl0KGJyZWFrcG9pbnQpO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9O1xuICAgICAgY2hlY2tlcihxdWVyeSk7XG4gICAgICBxdWVyeS5hZGRMaXN0ZW5lcihxID0+IGNoZWNrZXIocSkpO1xuICAgIH1cbiAgfVxufVxuIl19