UNPKG

@scriptloom/ngx-media-query

Version:

A convenient media query service for building responsive Angular components.

28 lines 4.06 kB
import { Injectable } from '@angular/core'; import { createEffect, Actions, ofType } from '@ngrx/effects'; import { catchError, map } from 'rxjs/operators'; import * as MediaQueriesActions from './media-queries.actions'; import { of } from 'rxjs'; export class MediaQueriesEffects { constructor(actions$) { this.actions$ = actions$; this.loadMediaQueries$ = createEffect(() => this.actions$.pipe(ofType(MediaQueriesActions.loadMediaQueries), map(() => { // Your custom service 'load' logic goes here. const mediaQueries = this.loadMediaQueries(); return MediaQueriesActions.loadMediaQueriesSuccess({ mediaQueries }); }), catchError((error) => { console.error('Error', error); return of(MediaQueriesActions.loadMediaQueriesFailure({ error })); })), { dispatch: true, resubscribeOnError: false }); } loadMediaQueries() { return []; } } MediaQueriesEffects.decorators = [ { type: Injectable } ]; MediaQueriesEffects.ctorParameters = () => [ { type: Actions } ]; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVkaWEtcXVlcmllcy5lZmZlY3RzLmpzIiwic291cmNlUm9vdCI6Ii9ob21lL2phbWVzL1dlYnN0b3JtUHJvamVjdHMvbGliLW5neC9wcm9qZWN0cy9uZ3gtbWVkaWEtcXVlcnkvc3JjLyIsInNvdXJjZXMiOlsibGliL3N0b3JlL21lZGlhLXF1ZXJpZXMuZWZmZWN0cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxZQUFZLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM5RCxPQUFPLEVBQUUsVUFBVSxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRWpELE9BQU8sS0FBSyxtQkFBbUIsTUFBTSx5QkFBeUIsQ0FBQztBQUUvRCxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRzFCLE1BQU0sT0FBTyxtQkFBbUI7SUFpQjlCLFlBQW9CLFFBQWlCO1FBQWpCLGFBQVEsR0FBUixRQUFRLENBQVM7UUFoQnJDLHNCQUFpQixHQUFHLFlBQVksQ0FBQyxHQUFHLEVBQUUsQ0FDbEMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQ2hCLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxnQkFBZ0IsQ0FBQyxFQUM1QyxHQUFHLENBQUMsR0FBRyxFQUFFO1lBQ1AsOENBQThDO1lBQzlDLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1lBQzdDLE9BQU8sbUJBQW1CLENBQUMsdUJBQXVCLENBQUMsRUFBQyxZQUFZLEVBQUMsQ0FBQyxDQUFDO1FBQ3JFLENBQUMsQ0FBQyxFQUNGLFVBQVUsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO1lBQ25CLE9BQU8sQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFLEtBQUssQ0FBQyxDQUFDO1lBQzlCLE9BQU8sRUFBRSxDQUFDLG1CQUFtQixDQUFDLHVCQUF1QixDQUFDLEVBQUMsS0FBSyxFQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ2xFLENBQUMsQ0FBQyxDQUNILEVBQ0gsRUFBQyxRQUFRLEVBQUUsSUFBSSxFQUFFLGtCQUFrQixFQUFFLEtBQUssRUFBQyxDQUM1QyxDQUFDO0lBR0YsQ0FBQztJQUVELGdCQUFnQjtRQUNkLE9BQU8sRUFBRSxDQUFDO0lBQ1osQ0FBQzs7O1lBdkJGLFVBQVU7OztZQVBZLE9BQU8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBjcmVhdGVFZmZlY3QsIEFjdGlvbnMsIG9mVHlwZSB9IGZyb20gJ0BuZ3J4L2VmZmVjdHMnO1xuaW1wb3J0IHsgY2F0Y2hFcnJvciwgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgKiBhcyBNZWRpYVF1ZXJpZXNBY3Rpb25zIGZyb20gJy4vbWVkaWEtcXVlcmllcy5hY3Rpb25zJztcbmltcG9ydCB7IE1lZGlhUXVlcmllc0VudGl0eSB9IGZyb20gJy4vbWVkaWEtcXVlcmllcy5tb2RlbHMnO1xuaW1wb3J0IHsgb2YgfSBmcm9tICdyeGpzJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIE1lZGlhUXVlcmllc0VmZmVjdHMge1xuICBsb2FkTWVkaWFRdWVyaWVzJCA9IGNyZWF0ZUVmZmVjdCgoKSA9PlxuICAgICAgdGhpcy5hY3Rpb25zJC5waXBlKFxuICAgICAgICBvZlR5cGUoTWVkaWFRdWVyaWVzQWN0aW9ucy5sb2FkTWVkaWFRdWVyaWVzKSxcbiAgICAgICAgbWFwKCgpID0+IHtcbiAgICAgICAgICAvLyBZb3VyIGN1c3RvbSBzZXJ2aWNlICdsb2FkJyBsb2dpYyBnb2VzIGhlcmUuXG4gICAgICAgICAgY29uc3QgbWVkaWFRdWVyaWVzID0gdGhpcy5sb2FkTWVkaWFRdWVyaWVzKCk7XG4gICAgICAgICAgcmV0dXJuIE1lZGlhUXVlcmllc0FjdGlvbnMubG9hZE1lZGlhUXVlcmllc1N1Y2Nlc3Moe21lZGlhUXVlcmllc30pO1xuICAgICAgICB9KSxcbiAgICAgICAgY2F0Y2hFcnJvcigoZXJyb3IpID0+IHtcbiAgICAgICAgICBjb25zb2xlLmVycm9yKCdFcnJvcicsIGVycm9yKTtcbiAgICAgICAgICByZXR1cm4gb2YoTWVkaWFRdWVyaWVzQWN0aW9ucy5sb2FkTWVkaWFRdWVyaWVzRmFpbHVyZSh7ZXJyb3J9KSk7XG4gICAgICAgIH0pXG4gICAgICApLFxuICAgIHtkaXNwYXRjaDogdHJ1ZSwgcmVzdWJzY3JpYmVPbkVycm9yOiBmYWxzZX1cbiAgKTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGFjdGlvbnMkOiBBY3Rpb25zKSB7XG4gIH1cblxuICBsb2FkTWVkaWFRdWVyaWVzKCk6IE1lZGlhUXVlcmllc0VudGl0eVtdIHtcbiAgICByZXR1cm4gW107XG4gIH1cbn1cbiJdfQ==