ngx-material-drawer
Version:
A dynamic, configurable Angular Material drawer with dashboard capabilities
33 lines • 5.17 kB
JavaScript
import { Injectable } from "@angular/core";
import { fromEvent } from "rxjs";
import { startWith, map, distinctUntilChanged, shareReplay, } from "rxjs/operators";
import * as i0 from "@angular/core";
export const POINTS_NAME = ["xl", "lg", "md", "sm", "xs"];
const QUERY = new Map([
[POINTS_NAME[0], "(min-width: 1200px)"],
[POINTS_NAME[1], "(min-width: 992px)"],
[POINTS_NAME[2], "(min-width: 768px)"],
[POINTS_NAME[3], "(min-width: 576px)"],
[POINTS_NAME[4], "(min-width: 0px)"],
]);
export class BreakpointObserverService {
constructor() {
this._size$ = fromEvent(window, "resize").pipe(startWith(this._getScreenSize()), map(() => this._getScreenSize()), distinctUntilChanged(), shareReplay(1));
}
get size$() {
return this._size$;
}
_getScreenSize() {
const [[newSize = "never"]] = Array.from(QUERY.entries()).filter(([size, mediaQuery]) => window.matchMedia(mediaQuery).matches);
return newSize;
}
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: BreakpointObserverService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: BreakpointObserverService, providedIn: "root" }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: BreakpointObserverService, decorators: [{
type: Injectable,
args: [{
providedIn: "root",
}]
}], ctorParameters: () => [] });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJlYWtwb2ludC1vYnNlcnZlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LW1hdGVyaWFsLWRyYXdlci9zcmMvbGliL2FwcC91dGlscy9icmVha3BvaW50LW9ic2VydmVyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsU0FBUyxFQUFjLE1BQU0sTUFBTSxDQUFDO0FBQzdDLE9BQU8sRUFDTCxTQUFTLEVBQ1QsR0FBRyxFQUNILG9CQUFvQixFQUNwQixXQUFXLEdBQ1osTUFBTSxnQkFBZ0IsQ0FBQzs7QUFDeEIsTUFBTSxDQUFDLE1BQU0sV0FBVyxHQUFHLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO0FBQzFELE1BQU0sS0FBSyxHQUF3QixJQUFJLEdBQUcsQ0FBQztJQUN6QyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsRUFBRSxxQkFBcUIsQ0FBQztJQUN2QyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsRUFBRSxvQkFBb0IsQ0FBQztJQUN0QyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsRUFBRSxvQkFBb0IsQ0FBQztJQUN0QyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsRUFBRSxvQkFBb0IsQ0FBQztJQUN0QyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsRUFBRSxrQkFBa0IsQ0FBQztDQUNyQyxDQUFDLENBQUM7QUFLSCxNQUFNLE9BQU8seUJBQXlCO0lBR3BDO1FBQ0UsSUFBSSxDQUFDLE1BQU0sR0FBRyxTQUFTLENBQUMsTUFBTSxFQUFFLFFBQVEsQ0FBQyxDQUFDLElBQUksQ0FDNUMsU0FBUyxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQyxFQUNoQyxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDLEVBQ2hDLG9CQUFvQixFQUFFLEVBQ3RCLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FDZixDQUFDO0lBQ0osQ0FBQztJQUVELElBQVcsS0FBSztRQUNkLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQztJQUNyQixDQUFDO0lBRU8sY0FBYztRQUNwQixNQUFNLENBQUMsQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDLENBQUMsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FDOUQsQ0FBQyxDQUFDLElBQUksRUFBRSxVQUFVLENBQUMsRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUMsQ0FBQyxPQUFPLENBQzlELENBQUM7UUFDRixPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDOytHQXJCVSx5QkFBeUI7bUhBQXpCLHlCQUF5QixjQUZ4QixNQUFNOzs0RkFFUCx5QkFBeUI7a0JBSHJDLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBmcm9tRXZlbnQsIE9ic2VydmFibGUgfSBmcm9tIFwicnhqc1wiO1xuaW1wb3J0IHtcbiAgc3RhcnRXaXRoLFxuICBtYXAsXG4gIGRpc3RpbmN0VW50aWxDaGFuZ2VkLFxuICBzaGFyZVJlcGxheSxcbn0gZnJvbSBcInJ4anMvb3BlcmF0b3JzXCI7XG5leHBvcnQgY29uc3QgUE9JTlRTX05BTUUgPSBbXCJ4bFwiLCBcImxnXCIsIFwibWRcIiwgXCJzbVwiLCBcInhzXCJdO1xuY29uc3QgUVVFUlk6IE1hcDxzdHJpbmcsIHN0cmluZz4gPSBuZXcgTWFwKFtcbiAgW1BPSU5UU19OQU1FWzBdLCBcIihtaW4td2lkdGg6IDEyMDBweClcIl0sXG4gIFtQT0lOVFNfTkFNRVsxXSwgXCIobWluLXdpZHRoOiA5OTJweClcIl0sXG4gIFtQT0lOVFNfTkFNRVsyXSwgXCIobWluLXdpZHRoOiA3NjhweClcIl0sXG4gIFtQT0lOVFNfTkFNRVszXSwgXCIobWluLXdpZHRoOiA1NzZweClcIl0sXG4gIFtQT0lOVFNfTkFNRVs0XSwgXCIobWluLXdpZHRoOiAwcHgpXCJdLFxuXSk7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogXCJyb290XCIsXG59KVxuZXhwb3J0IGNsYXNzIEJyZWFrcG9pbnRPYnNlcnZlclNlcnZpY2Uge1xuICBwcml2YXRlIF9zaXplJDogT2JzZXJ2YWJsZTxzdHJpbmc+O1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHRoaXMuX3NpemUkID0gZnJvbUV2ZW50KHdpbmRvdywgXCJyZXNpemVcIikucGlwZShcbiAgICAgIHN0YXJ0V2l0aCh0aGlzLl9nZXRTY3JlZW5TaXplKCkpLFxuICAgICAgbWFwKCgpID0+IHRoaXMuX2dldFNjcmVlblNpemUoKSksXG4gICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgICAgc2hhcmVSZXBsYXkoMSlcbiAgICApO1xuICB9XG5cbiAgcHVibGljIGdldCBzaXplJCgpOiBPYnNlcnZhYmxlPHN0cmluZz4ge1xuICAgIHJldHVybiB0aGlzLl9zaXplJDtcbiAgfVxuXG4gIHByaXZhdGUgX2dldFNjcmVlblNpemUoKTogc3RyaW5nIHtcbiAgICBjb25zdCBbW25ld1NpemUgPSBcIm5ldmVyXCJdXSA9IEFycmF5LmZyb20oUVVFUlkuZW50cmllcygpKS5maWx0ZXIoXG4gICAgICAoW3NpemUsIG1lZGlhUXVlcnldKSA9PiB3aW5kb3cubWF0Y2hNZWRpYShtZWRpYVF1ZXJ5KS5tYXRjaGVzXG4gICAgKTtcbiAgICByZXR1cm4gbmV3U2l6ZTtcbiAgfVxufVxuIl19