@junte/ui
Version:
Quality Angular UI components kit
55 lines • 5.31 kB
JavaScript
import { __decorate, __metadata, __values } from "tslib";
import { EventEmitter, Injectable, NgZone } from '@angular/core';
import { Breakpoint } from '../../core/enums/breakpoint';
var BreakpointService = /** @class */ (function () {
function BreakpointService(zone) {
var _a, e_1, _b;
var _this = this;
this.queries = (_a = {},
_a[Breakpoint.mobile] = window.matchMedia("(max-width: 768px)"),
_a[Breakpoint.tablet] = window.matchMedia("(min-width: 769px) and (max-width: 992px)"),
_a[Breakpoint.desktop] = window.matchMedia("(min-width: 993px) and (max-width: 1200px)"),
_a[Breakpoint.wide] = window.matchMedia("(min-width: 1201px)"),
_a);
this.current = null;
this.changed = new EventEmitter(null);
var _loop_1 = function (i) {
var breakpoint = i;
var query = this_1.queries[i];
var checker = function (q) {
if (q.matches) {
zone.run(function () {
_this.current = breakpoint;
_this.changed.emit(breakpoint);
});
}
};
checker(query);
query.addListener(function (q) { return checker(q); });
};
var this_1 = this;
try {
for (var _c = __values(Object.keys(this.queries)), _d = _c.next(); !_d.done; _d = _c.next()) {
var i = _d.value;
_loop_1(i);
}
}
catch (e_1_1) { e_1 = { error: e_1_1 }; }
finally {
try {
if (_d && !_d.done && (_b = _c.return)) _b.call(_c);
}
finally { if (e_1) throw e_1.error; }
}
}
BreakpointService.ctorParameters = function () { return [
{ type: NgZone }
]; };
BreakpointService = __decorate([
Injectable(),
__metadata("design:paramtypes", [NgZone])
], BreakpointService);
return BreakpointService;
}());
export { BreakpointService };
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJlYWtwb2ludC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGp1bnRlL3VpLyIsInNvdXJjZXMiOlsibGliL2xheW91dC9yZXNwb25zaXZlL2JyZWFrcG9pbnQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2pFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUd6RDtJQVlFLDJCQUFZLElBQVk7O1FBQXhCLGlCQWVDO1FBekJPLFlBQU87WUFDYixHQUFDLFVBQVUsQ0FBQyxNQUFNLElBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxvQkFBb0IsQ0FBQztZQUM1RCxHQUFDLFVBQVUsQ0FBQyxNQUFNLElBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQywyQ0FBMkMsQ0FBQztZQUNuRixHQUFDLFVBQVUsQ0FBQyxPQUFPLElBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyw0Q0FBNEMsQ0FBQztZQUNyRixHQUFDLFVBQVUsQ0FBQyxJQUFJLElBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxxQkFBcUIsQ0FBQztnQkFDM0Q7UUFFRixZQUFPLEdBQWUsSUFBSSxDQUFDO1FBQzNCLFlBQU8sR0FBRyxJQUFJLFlBQVksQ0FBYSxJQUFJLENBQUMsQ0FBQztnQ0FHaEMsQ0FBQztZQUNWLElBQU0sVUFBVSxHQUFHLENBQWUsQ0FBQztZQUNuQyxJQUFNLEtBQUssR0FBRyxPQUFLLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUM5QixJQUFNLE9BQU8sR0FBRyxVQUFBLENBQUM7Z0JBQ2YsSUFBSSxDQUFDLENBQUMsT0FBTyxFQUFFO29CQUNiLElBQUksQ0FBQyxHQUFHLENBQUM7d0JBQ1AsS0FBSSxDQUFDLE9BQU8sR0FBRyxVQUFVLENBQUM7d0JBQzFCLEtBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO29CQUNoQyxDQUFDLENBQUMsQ0FBQztpQkFDSjtZQUNILENBQUMsQ0FBQztZQUNGLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNmLEtBQUssQ0FBQyxXQUFXLENBQUMsVUFBQSxDQUFDLElBQUksT0FBQSxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQVYsQ0FBVSxDQUFDLENBQUM7Ozs7WUFackMsS0FBZ0IsSUFBQSxLQUFBLFNBQUEsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUEsZ0JBQUE7Z0JBQXBDLElBQU0sQ0FBQyxXQUFBO3dCQUFELENBQUM7YUFhWDs7Ozs7Ozs7O0lBQ0gsQ0FBQzs7Z0JBZmlCLE1BQU07O0lBWmIsaUJBQWlCO1FBRDdCLFVBQVUsRUFBRTt5Q0FhTyxNQUFNO09BWmIsaUJBQWlCLENBNEI3QjtJQUFELHdCQUFDO0NBQUEsQUE1QkQsSUE0QkM7U0E1QlksaUJBQWlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRXZlbnRFbWl0dGVyLCBJbmplY3RhYmxlLCBOZ1pvbmUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEJyZWFrcG9pbnQgfSBmcm9tICcuLi8uLi9jb3JlL2VudW1zL2JyZWFrcG9pbnQnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgQnJlYWtwb2ludFNlcnZpY2Uge1xuXG4gIHByaXZhdGUgcXVlcmllcyA9IHtcbiAgICBbQnJlYWtwb2ludC5tb2JpbGVdOiB3aW5kb3cubWF0Y2hNZWRpYShgKG1heC13aWR0aDogNzY4cHgpYCksXG4gICAgW0JyZWFrcG9pbnQudGFibGV0XTogd2luZG93Lm1hdGNoTWVkaWEoYChtaW4td2lkdGg6IDc2OXB4KSBhbmQgKG1heC13aWR0aDogOTkycHgpYCksXG4gICAgW0JyZWFrcG9pbnQuZGVza3RvcF06IHdpbmRvdy5tYXRjaE1lZGlhKGAobWluLXdpZHRoOiA5OTNweCkgYW5kIChtYXgtd2lkdGg6IDEyMDBweClgKSxcbiAgICBbQnJlYWtwb2ludC53aWRlXTogd2luZG93Lm1hdGNoTWVkaWEoYChtaW4td2lkdGg6IDEyMDFweClgKVxuICB9O1xuXG4gIGN1cnJlbnQ6IEJyZWFrcG9pbnQgPSBudWxsO1xuICBjaGFuZ2VkID0gbmV3IEV2ZW50RW1pdHRlcjxCcmVha3BvaW50PihudWxsKTtcblxuICBjb25zdHJ1Y3Rvcih6b25lOiBOZ1pvbmUpIHtcbiAgICBmb3IgKGNvbnN0IGkgb2YgT2JqZWN0LmtleXModGhpcy5xdWVyaWVzKSkge1xuICAgICAgY29uc3QgYnJlYWtwb2ludCA9IGkgYXMgQnJlYWtwb2ludDtcbiAgICAgIGNvbnN0IHF1ZXJ5ID0gdGhpcy5xdWVyaWVzW2ldO1xuICAgICAgY29uc3QgY2hlY2tlciA9IHEgPT4ge1xuICAgICAgICBpZiAocS5tYXRjaGVzKSB7XG4gICAgICAgICAgem9uZS5ydW4oKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5jdXJyZW50ID0gYnJlYWtwb2ludDtcbiAgICAgICAgICAgIHRoaXMuY2hhbmdlZC5lbWl0KGJyZWFrcG9pbnQpO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9O1xuICAgICAgY2hlY2tlcihxdWVyeSk7XG4gICAgICBxdWVyeS5hZGRMaXN0ZW5lcihxID0+IGNoZWNrZXIocSkpO1xuICAgIH1cbiAgfVxufVxuIl19