@scriptloom/ngx-media-query
Version:
A convenient media query service for building responsive Angular components.
28 lines • 4.06 kB
JavaScript
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==