@spartacus/core
Version:
Spartacus - the core framework
39 lines • 7.01 kB
JavaScript
import { __decorate } from "tslib";
import { Injectable } from '@angular/core';
import { Effect, ofType } from '@ngrx/effects';
import { of } from 'rxjs';
import { bufferCount, catchError, exhaustMap, filter, map, } from 'rxjs/operators';
import { normalizeHttpError } from '../../../util/normalize-http-error';
import { SiteContextActions } from '../actions/index';
import { getActiveCurrency } from '../selectors/currencies.selectors';
import * as i0 from "@angular/core";
import * as i1 from "@ngrx/effects";
import * as i2 from "../../connectors/site.connector";
import * as i3 from "@ngrx/store";
export class CurrenciesEffects {
constructor(actions$, siteConnector, state) {
this.actions$ = actions$;
this.siteConnector = siteConnector;
this.state = state;
this.loadCurrencies$ = this.actions$.pipe(ofType(SiteContextActions.LOAD_CURRENCIES), exhaustMap(() => {
return this.siteConnector.getCurrencies().pipe(map((currencies) => new SiteContextActions.LoadCurrenciesSuccess(currencies)), catchError((error) => of(new SiteContextActions.LoadCurrenciesFail(normalizeHttpError(error)))));
}));
this.activateCurrency$ = this.state
.select(getActiveCurrency)
.pipe(bufferCount(2, 1),
// avoid dispatching `change` action when we're just setting the initial value:
filter(([previous]) => !!previous), map(([previous, current]) => new SiteContextActions.CurrencyChange({ previous, current })));
}
}
CurrenciesEffects.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: CurrenciesEffects, deps: [{ token: i1.Actions }, { token: i2.SiteConnector }, { token: i3.Store }], target: i0.ɵɵFactoryTarget.Injectable });
CurrenciesEffects.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: CurrenciesEffects });
__decorate([
Effect()
], CurrenciesEffects.prototype, "loadCurrencies$", void 0);
__decorate([
Effect()
], CurrenciesEffects.prototype, "activateCurrency$", void 0);
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: CurrenciesEffects, decorators: [{
type: Injectable
}], ctorParameters: function () { return [{ type: i1.Actions }, { type: i2.SiteConnector }, { type: i3.Store }]; }, propDecorators: { loadCurrencies$: [], activateCurrency$: [] } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VycmVuY2llcy5lZmZlY3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3NyYy9zaXRlLWNvbnRleHQvc3RvcmUvZWZmZWN0cy9jdXJyZW5jaWVzLmVmZmVjdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQVcsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV4RCxPQUFPLEVBQWMsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3RDLE9BQU8sRUFDTCxXQUFXLEVBQ1gsVUFBVSxFQUNWLFVBQVUsRUFDVixNQUFNLEVBQ04sR0FBRyxHQUNKLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFFeEUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDdEQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7Ozs7O0FBSXRFLE1BQU0sT0FBTyxpQkFBaUI7SUFvQzVCLFlBQ1UsUUFBaUIsRUFDakIsYUFBNEIsRUFDNUIsS0FBa0M7UUFGbEMsYUFBUSxHQUFSLFFBQVEsQ0FBUztRQUNqQixrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQUM1QixVQUFLLEdBQUwsS0FBSyxDQUE2QjtRQXJDNUMsb0JBQWUsR0FHWCxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FDcEIsTUFBTSxDQUFDLGtCQUFrQixDQUFDLGVBQWUsQ0FBQyxFQUMxQyxVQUFVLENBQUMsR0FBRyxFQUFFO1lBQ2QsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLGFBQWEsRUFBRSxDQUFDLElBQUksQ0FDNUMsR0FBRyxDQUNELENBQUMsVUFBVSxFQUFFLEVBQUUsQ0FDYixJQUFJLGtCQUFrQixDQUFDLHFCQUFxQixDQUFDLFVBQVUsQ0FBQyxDQUMzRCxFQUNELFVBQVUsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQ25CLEVBQUUsQ0FDQSxJQUFJLGtCQUFrQixDQUFDLGtCQUFrQixDQUFDLGtCQUFrQixDQUFDLEtBQUssQ0FBQyxDQUFDLENBQ3JFLENBQ0YsQ0FDRixDQUFDO1FBQ0osQ0FBQyxDQUFDLENBQ0gsQ0FBQztRQUdGLHNCQUFpQixHQUFrRCxJQUFJLENBQUMsS0FBSzthQUMxRSxNQUFNLENBQUMsaUJBQWlCLENBQUM7YUFDekIsSUFBSSxDQUNILFdBQVcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBRWpCLCtFQUErRTtRQUMvRSxNQUFNLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLEVBQ2xDLEdBQUcsQ0FDRCxDQUFDLENBQUMsUUFBUSxFQUFFLE9BQU8sQ0FBQyxFQUFFLEVBQUUsQ0FDdEIsSUFBSSxrQkFBa0IsQ0FBQyxjQUFjLENBQUMsRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FDL0QsQ0FDRixDQUFDO0lBTUQsQ0FBQzs7OEdBeENPLGlCQUFpQjtrSEFBakIsaUJBQWlCO0FBRTVCO0lBREMsTUFBTSxFQUFFOzBEQW1CUDtBQUdGO0lBREMsTUFBTSxFQUFFOzREQVlMOzJGQWxDTyxpQkFBaUI7a0JBRDdCLFVBQVU7OElBR1QsZUFBZSxNQXFCZixpQkFBaUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBY3Rpb25zLCBFZmZlY3QsIG9mVHlwZSB9IGZyb20gJ0BuZ3J4L2VmZmVjdHMnO1xuaW1wb3J0IHsgU3RvcmUgfSBmcm9tICdAbmdyeC9zdG9yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBvZiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtcbiAgYnVmZmVyQ291bnQsXG4gIGNhdGNoRXJyb3IsXG4gIGV4aGF1c3RNYXAsXG4gIGZpbHRlcixcbiAgbWFwLFxufSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBub3JtYWxpemVIdHRwRXJyb3IgfSBmcm9tICcuLi8uLi8uLi91dGlsL25vcm1hbGl6ZS1odHRwLWVycm9yJztcbmltcG9ydCB7IFNpdGVDb25uZWN0b3IgfSBmcm9tICcuLi8uLi9jb25uZWN0b3JzL3NpdGUuY29ubmVjdG9yJztcbmltcG9ydCB7IFNpdGVDb250ZXh0QWN0aW9ucyB9IGZyb20gJy4uL2FjdGlvbnMvaW5kZXgnO1xuaW1wb3J0IHsgZ2V0QWN0aXZlQ3VycmVuY3kgfSBmcm9tICcuLi9zZWxlY3RvcnMvY3VycmVuY2llcy5zZWxlY3RvcnMnO1xuaW1wb3J0IHsgU3RhdGVXaXRoU2l0ZUNvbnRleHQgfSBmcm9tICcuLi9zdGF0ZSc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBDdXJyZW5jaWVzRWZmZWN0cyB7XG4gIEBFZmZlY3QoKVxuICBsb2FkQ3VycmVuY2llcyQ6IE9ic2VydmFibGU8XG4gICAgfCBTaXRlQ29udGV4dEFjdGlvbnMuTG9hZEN1cnJlbmNpZXNTdWNjZXNzXG4gICAgfCBTaXRlQ29udGV4dEFjdGlvbnMuTG9hZEN1cnJlbmNpZXNGYWlsXG4gID4gPSB0aGlzLmFjdGlvbnMkLnBpcGUoXG4gICAgb2ZUeXBlKFNpdGVDb250ZXh0QWN0aW9ucy5MT0FEX0NVUlJFTkNJRVMpLFxuICAgIGV4aGF1c3RNYXAoKCkgPT4ge1xuICAgICAgcmV0dXJuIHRoaXMuc2l0ZUNvbm5lY3Rvci5nZXRDdXJyZW5jaWVzKCkucGlwZShcbiAgICAgICAgbWFwKFxuICAgICAgICAgIChjdXJyZW5jaWVzKSA9PlxuICAgICAgICAgICAgbmV3IFNpdGVDb250ZXh0QWN0aW9ucy5Mb2FkQ3VycmVuY2llc1N1Y2Nlc3MoY3VycmVuY2llcylcbiAgICAgICAgKSxcbiAgICAgICAgY2F0Y2hFcnJvcigoZXJyb3IpID0+XG4gICAgICAgICAgb2YoXG4gICAgICAgICAgICBuZXcgU2l0ZUNvbnRleHRBY3Rpb25zLkxvYWRDdXJyZW5jaWVzRmFpbChub3JtYWxpemVIdHRwRXJyb3IoZXJyb3IpKVxuICAgICAgICAgIClcbiAgICAgICAgKVxuICAgICAgKTtcbiAgICB9KVxuICApO1xuXG4gIEBFZmZlY3QoKVxuICBhY3RpdmF0ZUN1cnJlbmN5JDogT2JzZXJ2YWJsZTxTaXRlQ29udGV4dEFjdGlvbnMuQ3VycmVuY3lDaGFuZ2U+ID0gdGhpcy5zdGF0ZVxuICAgIC5zZWxlY3QoZ2V0QWN0aXZlQ3VycmVuY3kpXG4gICAgLnBpcGUoXG4gICAgICBidWZmZXJDb3VudCgyLCAxKSxcblxuICAgICAgLy8gYXZvaWQgZGlzcGF0Y2hpbmcgYGNoYW5nZWAgYWN0aW9uIHdoZW4gd2UncmUganVzdCBzZXR0aW5nIHRoZSBpbml0aWFsIHZhbHVlOlxuICAgICAgZmlsdGVyKChbcHJldmlvdXNdKSA9PiAhIXByZXZpb3VzKSxcbiAgICAgIG1hcChcbiAgICAgICAgKFtwcmV2aW91cywgY3VycmVudF0pID0+XG4gICAgICAgICAgbmV3IFNpdGVDb250ZXh0QWN0aW9ucy5DdXJyZW5jeUNoYW5nZSh7IHByZXZpb3VzLCBjdXJyZW50IH0pXG4gICAgICApXG4gICAgKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGFjdGlvbnMkOiBBY3Rpb25zLFxuICAgIHByaXZhdGUgc2l0ZUNvbm5lY3RvcjogU2l0ZUNvbm5lY3RvcixcbiAgICBwcml2YXRlIHN0YXRlOiBTdG9yZTxTdGF0ZVdpdGhTaXRlQ29udGV4dD5cbiAgKSB7fVxufVxuIl19