UNPKG

ngx-material-drawer

Version:

A dynamic, configurable Angular Material drawer with dashboard capabilities

33 lines 5.17 kB
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