UNPKG

@taiga-ui/core

Version:

Core library for creating Angular components and applications using Taiga UI

31 lines 5.86 kB
import { inject, Injectable } from '@angular/core'; import { tuiZoneOptimized } from '@taiga-ui/cdk/observables'; import { TUI_WINDOW_SIZE } from '@taiga-ui/cdk/tokens'; import { TUI_MEDIA } from '@taiga-ui/core/tokens'; import { distinctUntilChanged, map, Observable, shareReplay } from 'rxjs'; import * as i0 from "@angular/core"; /** * Service to provide the current breakpoint based on Taiga UI's media queries */ class TuiBreakpointService extends Observable { constructor() { super((subscriber) => this.stream$.subscribe(subscriber)); this.media = inject(TUI_MEDIA); this.sorted = Object.values(this.media).sort((a, b) => a - b); this.invert = Object.keys(this.media).reduce((ret, key) => ({ ...ret, [this.media[key]]: key, }), {}); this.stream$ = inject(TUI_WINDOW_SIZE).pipe(map(({ width }) => this.sorted.find((size) => size > width)), map((key) => this.invert[key || this.sorted[this.sorted.length - 1] || 0] ?? null), distinctUntilChanged(), tuiZoneOptimized(), shareReplay({ bufferSize: 1, refCount: true })); } static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiBreakpointService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); } static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiBreakpointService, providedIn: 'root' }); } } export { TuiBreakpointService }; i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiBreakpointService, decorators: [{ type: Injectable, args: [{ providedIn: 'root', }] }], ctorParameters: function () { return []; } }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJlYWtwb2ludC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9zZXJ2aWNlcy9icmVha3BvaW50LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLE1BQU0sRUFBRSxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDakQsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sMkJBQTJCLENBQUM7QUFDM0QsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBQ3JELE9BQU8sRUFBQyxTQUFTLEVBQWdCLE1BQU0sdUJBQXVCLENBQUM7QUFDL0QsT0FBTyxFQUFDLG9CQUFvQixFQUFFLEdBQUcsRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFDLE1BQU0sTUFBTSxDQUFDOztBQUl4RTs7R0FFRztBQUNILE1BR2Esb0JBQXFCLFNBQVEsVUFBd0M7SUF1QjlFO1FBQ0ksS0FBSyxDQUFDLENBQUMsVUFBVSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDO1FBdkI3QyxVQUFLLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQzFCLFdBQU0sR0FBYSxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDbkUsV0FBTSxHQUEwQyxNQUFNLENBQUMsSUFBSSxDQUN4RSxJQUFJLENBQUMsS0FBSyxDQUNiLENBQUMsTUFBTSxDQUNKLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLENBQUMsQ0FBQztZQUNYLEdBQUcsR0FBRztZQUNOLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUE0QixDQUFDLENBQUMsRUFBRSxHQUFHO1NBQ2xELENBQUMsRUFDRixFQUFFLENBQ0wsQ0FBQztRQUVlLFlBQU8sR0FBRyxNQUFNLENBQUMsZUFBZSxDQUFDLENBQUMsSUFBSSxDQUNuRCxHQUFHLENBQUMsQ0FBQyxFQUFDLEtBQUssRUFBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxHQUFHLEtBQUssQ0FBQyxDQUFDLEVBQzFELEdBQUcsQ0FDQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxJQUFJLENBQ2hGLEVBQ0Qsb0JBQW9CLEVBQUUsRUFDdEIsZ0JBQWdCLEVBQUUsRUFDbEIsV0FBVyxDQUFDLEVBQUMsVUFBVSxFQUFFLENBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFDLENBQUMsQ0FDL0MsQ0FBQztJQUlGLENBQUM7K0dBekJRLG9CQUFvQjttSEFBcEIsb0JBQW9CLGNBRmpCLE1BQU07O1NBRVQsb0JBQW9COzRGQUFwQixvQkFBb0I7a0JBSGhDLFVBQVU7bUJBQUM7b0JBQ1IsVUFBVSxFQUFFLE1BQU07aUJBQ3JCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtpbmplY3QsIEluamVjdGFibGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHt0dWlab25lT3B0aW1pemVkfSBmcm9tICdAdGFpZ2EtdWkvY2RrL29ic2VydmFibGVzJztcbmltcG9ydCB7VFVJX1dJTkRPV19TSVpFfSBmcm9tICdAdGFpZ2EtdWkvY2RrL3Rva2Vucyc7XG5pbXBvcnQge1RVSV9NRURJQSwgdHlwZSBUdWlNZWRpYX0gZnJvbSAnQHRhaWdhLXVpL2NvcmUvdG9rZW5zJztcbmltcG9ydCB7ZGlzdGluY3RVbnRpbENoYW5nZWQsIG1hcCwgT2JzZXJ2YWJsZSwgc2hhcmVSZXBsYXl9IGZyb20gJ3J4anMnO1xuXG5leHBvcnQgdHlwZSBUdWlCcmVha3BvaW50TWVkaWFLZXkgPSBrZXlvZiBPbWl0PFR1aU1lZGlhLCAndGFibGV0Jz47XG5cbi8qKlxuICogU2VydmljZSB0byBwcm92aWRlIHRoZSBjdXJyZW50IGJyZWFrcG9pbnQgYmFzZWQgb24gVGFpZ2EgVUkncyBtZWRpYSBxdWVyaWVzXG4gKi9cbkBJbmplY3RhYmxlKHtcbiAgICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIFR1aUJyZWFrcG9pbnRTZXJ2aWNlIGV4dGVuZHMgT2JzZXJ2YWJsZTxUdWlCcmVha3BvaW50TWVkaWFLZXkgfCBudWxsPiB7XG4gICAgcHJpdmF0ZSByZWFkb25seSBtZWRpYSA9IGluamVjdChUVUlfTUVESUEpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgc29ydGVkOiBudW1iZXJbXSA9IE9iamVjdC52YWx1ZXModGhpcy5tZWRpYSkuc29ydCgoYSwgYikgPT4gYSAtIGIpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgaW52ZXJ0OiBSZWNvcmQ8bnVtYmVyLCBUdWlCcmVha3BvaW50TWVkaWFLZXk+ID0gT2JqZWN0LmtleXMoXG4gICAgICAgIHRoaXMubWVkaWEsXG4gICAgKS5yZWR1Y2UoXG4gICAgICAgIChyZXQsIGtleSkgPT4gKHtcbiAgICAgICAgICAgIC4uLnJldCxcbiAgICAgICAgICAgIFt0aGlzLm1lZGlhW2tleSBhcyBUdWlCcmVha3BvaW50TWVkaWFLZXldXToga2V5LFxuICAgICAgICB9KSxcbiAgICAgICAge30sXG4gICAgKTtcblxuICAgIHByaXZhdGUgcmVhZG9ubHkgc3RyZWFtJCA9IGluamVjdChUVUlfV0lORE9XX1NJWkUpLnBpcGUoXG4gICAgICAgIG1hcCgoe3dpZHRofSkgPT4gdGhpcy5zb3J0ZWQuZmluZCgoc2l6ZSkgPT4gc2l6ZSA+IHdpZHRoKSksXG4gICAgICAgIG1hcChcbiAgICAgICAgICAgIChrZXkpID0+IHRoaXMuaW52ZXJ0W2tleSB8fCB0aGlzLnNvcnRlZFt0aGlzLnNvcnRlZC5sZW5ndGggLSAxXSB8fCAwXSA/PyBudWxsLFxuICAgICAgICApLFxuICAgICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgICAgICB0dWlab25lT3B0aW1pemVkKCksXG4gICAgICAgIHNoYXJlUmVwbGF5KHtidWZmZXJTaXplOiAxLCByZWZDb3VudDogdHJ1ZX0pLFxuICAgICk7XG5cbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgc3VwZXIoKHN1YnNjcmliZXIpID0+IHRoaXMuc3RyZWFtJC5zdWJzY3JpYmUoc3Vic2NyaWJlcikpO1xuICAgIH1cbn1cbiJdfQ==