@spartacus/core
Version:
Spartacus - the core framework
39 lines • 6.96 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 { getActiveLanguage } from '../selectors/languages.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 LanguagesEffects {
constructor(actions$, siteConnector, state) {
this.actions$ = actions$;
this.siteConnector = siteConnector;
this.state = state;
this.loadLanguages$ = this.actions$.pipe(ofType(SiteContextActions.LOAD_LANGUAGES), exhaustMap(() => {
return this.siteConnector.getLanguages().pipe(map((languages) => new SiteContextActions.LoadLanguagesSuccess(languages)), catchError((error) => of(new SiteContextActions.LoadLanguagesFail(normalizeHttpError(error)))));
}));
this.activateLanguage$ = this.state
.select(getActiveLanguage)
.pipe(bufferCount(2, 1),
// avoid dispatching `change` action when we're just setting the initial value:
filter(([previous]) => !!previous), map(([previous, current]) => new SiteContextActions.LanguageChange({ previous, current })));
}
}
LanguagesEffects.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: LanguagesEffects, deps: [{ token: i1.Actions }, { token: i2.SiteConnector }, { token: i3.Store }], target: i0.ɵɵFactoryTarget.Injectable });
LanguagesEffects.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: LanguagesEffects });
__decorate([
Effect()
], LanguagesEffects.prototype, "loadLanguages$", void 0);
__decorate([
Effect()
], LanguagesEffects.prototype, "activateLanguage$", void 0);
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: LanguagesEffects, decorators: [{
type: Injectable
}], ctorParameters: function () { return [{ type: i1.Actions }, { type: i2.SiteConnector }, { type: i3.Store }]; }, propDecorators: { loadLanguages$: [], activateLanguage$: [] } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGFuZ3VhZ2VzLmVmZmVjdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvc3JjL3NpdGUtY29udGV4dC9zdG9yZS9lZmZlY3RzL2xhbmd1YWdlcy5lZmZlY3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFXLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFeEQsT0FBTyxFQUFjLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN0QyxPQUFPLEVBQ0wsV0FBVyxFQUNYLFVBQVUsRUFDVixVQUFVLEVBQ1YsTUFBTSxFQUNOLEdBQUcsR0FDSixNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBRXhFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDOzs7OztBQUlyRSxNQUFNLE9BQU8sZ0JBQWdCO0lBbUMzQixZQUNVLFFBQWlCLEVBQ2pCLGFBQTRCLEVBQzVCLEtBQWtDO1FBRmxDLGFBQVEsR0FBUixRQUFRLENBQVM7UUFDakIsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFDNUIsVUFBSyxHQUFMLEtBQUssQ0FBNkI7UUFwQzVDLG1CQUFjLEdBR1YsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQ3BCLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxjQUFjLENBQUMsRUFDekMsVUFBVSxDQUFDLEdBQUcsRUFBRTtZQUNkLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxZQUFZLEVBQUUsQ0FBQyxJQUFJLENBQzNDLEdBQUcsQ0FDRCxDQUFDLFNBQVMsRUFBRSxFQUFFLENBQUMsSUFBSSxrQkFBa0IsQ0FBQyxvQkFBb0IsQ0FBQyxTQUFTLENBQUMsQ0FDdEUsRUFDRCxVQUFVLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUNuQixFQUFFLENBQ0EsSUFBSSxrQkFBa0IsQ0FBQyxpQkFBaUIsQ0FBQyxrQkFBa0IsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUNwRSxDQUNGLENBQ0YsQ0FBQztRQUNKLENBQUMsQ0FBQyxDQUNILENBQUM7UUFHRixzQkFBaUIsR0FBa0QsSUFBSSxDQUFDLEtBQUs7YUFDMUUsTUFBTSxDQUFDLGlCQUFpQixDQUFDO2FBQ3pCLElBQUksQ0FDSCxXQUFXLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUVqQiwrRUFBK0U7UUFDL0UsTUFBTSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxFQUNsQyxHQUFHLENBQ0QsQ0FBQyxDQUFDLFFBQVEsRUFBRSxPQUFPLENBQUMsRUFBRSxFQUFFLENBQ3RCLElBQUksa0JBQWtCLENBQUMsY0FBYyxDQUFDLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQy9ELENBQ0YsQ0FBQztJQU1ELENBQUM7OzZHQXZDTyxnQkFBZ0I7aUhBQWhCLGdCQUFnQjtBQUUzQjtJQURDLE1BQU0sRUFBRTt3REFrQlA7QUFHRjtJQURDLE1BQU0sRUFBRTsyREFZTDsyRkFqQ08sZ0JBQWdCO2tCQUQ1QixVQUFVOzhJQUdULGNBQWMsTUFvQmQsaUJBQWlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWN0aW9ucywgRWZmZWN0LCBvZlR5cGUgfSBmcm9tICdAbmdyeC9lZmZlY3RzJztcbmltcG9ydCB7IFN0b3JlIH0gZnJvbSAnQG5ncngvc3RvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgb2YgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7XG4gIGJ1ZmZlckNvdW50LFxuICBjYXRjaEVycm9yLFxuICBleGhhdXN0TWFwLFxuICBmaWx0ZXIsXG4gIG1hcCxcbn0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgbm9ybWFsaXplSHR0cEVycm9yIH0gZnJvbSAnLi4vLi4vLi4vdXRpbC9ub3JtYWxpemUtaHR0cC1lcnJvcic7XG5pbXBvcnQgeyBTaXRlQ29ubmVjdG9yIH0gZnJvbSAnLi4vLi4vY29ubmVjdG9ycy9zaXRlLmNvbm5lY3Rvcic7XG5pbXBvcnQgeyBTaXRlQ29udGV4dEFjdGlvbnMgfSBmcm9tICcuLi9hY3Rpb25zL2luZGV4JztcbmltcG9ydCB7IGdldEFjdGl2ZUxhbmd1YWdlIH0gZnJvbSAnLi4vc2VsZWN0b3JzL2xhbmd1YWdlcy5zZWxlY3RvcnMnO1xuaW1wb3J0IHsgU3RhdGVXaXRoU2l0ZUNvbnRleHQgfSBmcm9tICcuLi9zdGF0ZSc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBMYW5ndWFnZXNFZmZlY3RzIHtcbiAgQEVmZmVjdCgpXG4gIGxvYWRMYW5ndWFnZXMkOiBPYnNlcnZhYmxlPFxuICAgIHwgU2l0ZUNvbnRleHRBY3Rpb25zLkxvYWRMYW5ndWFnZXNTdWNjZXNzXG4gICAgfCBTaXRlQ29udGV4dEFjdGlvbnMuTG9hZExhbmd1YWdlc0ZhaWxcbiAgPiA9IHRoaXMuYWN0aW9ucyQucGlwZShcbiAgICBvZlR5cGUoU2l0ZUNvbnRleHRBY3Rpb25zLkxPQURfTEFOR1VBR0VTKSxcbiAgICBleGhhdXN0TWFwKCgpID0+IHtcbiAgICAgIHJldHVybiB0aGlzLnNpdGVDb25uZWN0b3IuZ2V0TGFuZ3VhZ2VzKCkucGlwZShcbiAgICAgICAgbWFwKFxuICAgICAgICAgIChsYW5ndWFnZXMpID0+IG5ldyBTaXRlQ29udGV4dEFjdGlvbnMuTG9hZExhbmd1YWdlc1N1Y2Nlc3MobGFuZ3VhZ2VzKVxuICAgICAgICApLFxuICAgICAgICBjYXRjaEVycm9yKChlcnJvcikgPT5cbiAgICAgICAgICBvZihcbiAgICAgICAgICAgIG5ldyBTaXRlQ29udGV4dEFjdGlvbnMuTG9hZExhbmd1YWdlc0ZhaWwobm9ybWFsaXplSHR0cEVycm9yKGVycm9yKSlcbiAgICAgICAgICApXG4gICAgICAgIClcbiAgICAgICk7XG4gICAgfSlcbiAgKTtcblxuICBARWZmZWN0KClcbiAgYWN0aXZhdGVMYW5ndWFnZSQ6IE9ic2VydmFibGU8U2l0ZUNvbnRleHRBY3Rpb25zLkxhbmd1YWdlQ2hhbmdlPiA9IHRoaXMuc3RhdGVcbiAgICAuc2VsZWN0KGdldEFjdGl2ZUxhbmd1YWdlKVxuICAgIC5waXBlKFxuICAgICAgYnVmZmVyQ291bnQoMiwgMSksXG5cbiAgICAgIC8vIGF2b2lkIGRpc3BhdGNoaW5nIGBjaGFuZ2VgIGFjdGlvbiB3aGVuIHdlJ3JlIGp1c3Qgc2V0dGluZyB0aGUgaW5pdGlhbCB2YWx1ZTpcbiAgICAgIGZpbHRlcigoW3ByZXZpb3VzXSkgPT4gISFwcmV2aW91cyksXG4gICAgICBtYXAoXG4gICAgICAgIChbcHJldmlvdXMsIGN1cnJlbnRdKSA9PlxuICAgICAgICAgIG5ldyBTaXRlQ29udGV4dEFjdGlvbnMuTGFuZ3VhZ2VDaGFuZ2UoeyBwcmV2aW91cywgY3VycmVudCB9KVxuICAgICAgKVxuICAgICk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBhY3Rpb25zJDogQWN0aW9ucyxcbiAgICBwcml2YXRlIHNpdGVDb25uZWN0b3I6IFNpdGVDb25uZWN0b3IsXG4gICAgcHJpdmF0ZSBzdGF0ZTogU3RvcmU8U3RhdGVXaXRoU2l0ZUNvbnRleHQ+XG4gICkge31cbn1cbiJdfQ==