UNPKG

@spartacus/core

Version:

Spartacus - the core framework

56 lines 7.71 kB
import { Injectable } from '@angular/core'; import { switchMap, tap } from 'rxjs/operators'; import { getContextParameterDefault } from '../config/context-config-utils'; import { LANGUAGE_CONTEXT_ID } from '../providers/context-ids'; import * as i0 from "@angular/core"; import * as i1 from "../facade/language.service"; import * as i2 from "./language-state-persistence.service"; import * as i3 from "../../config/config-initializer/config-initializer.service"; export class LanguageInitializer { constructor(languageService, languageStatePersistenceService, configInit) { this.languageService = languageService; this.languageStatePersistenceService = languageStatePersistenceService; this.configInit = configInit; } /** * Initializes the value of the active language. */ initialize() { this.subscription = this.configInit .getStable('context') .pipe( // TODO(#12351): <--- plug here explicitly SiteContextRoutesHandler switchMap(() => this.languageStatePersistenceService.initSync()), switchMap(() => this.setFallbackValue())) .subscribe(); } /** * On subscription to the returned observable: * * Sets the default value taken from config, unless the active language has been already initialized. */ setFallbackValue() { return this.configInit .getStable('context') .pipe(tap((config) => this.setDefaultFromConfig(config))); } /** * Sets the active language value based on the default value from the config, * unless the active language has been already initialized. */ setDefaultFromConfig(config) { if (!this.languageService.isInitialized()) { this.languageService.setActive(getContextParameterDefault(config, LANGUAGE_CONTEXT_ID)); } } ngOnDestroy() { var _a; (_a = this.subscription) === null || _a === void 0 ? void 0 : _a.unsubscribe(); } } LanguageInitializer.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: LanguageInitializer, deps: [{ token: i1.LanguageService }, { token: i2.LanguageStatePersistenceService }, { token: i3.ConfigInitializerService }], target: i0.ɵɵFactoryTarget.Injectable }); LanguageInitializer.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: LanguageInitializer, providedIn: 'root' }); i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: LanguageInitializer, decorators: [{ type: Injectable, args: [{ providedIn: 'root' }] }], ctorParameters: function () { return [{ type: i1.LanguageService }, { type: i2.LanguageStatePersistenceService }, { type: i3.ConfigInitializerService }]; } }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGFuZ3VhZ2UtaW5pdGlhbGl6ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3NyYy9zaXRlLWNvbnRleHQvc2VydmljZXMvbGFuZ3VhZ2UtaW5pdGlhbGl6ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUV0RCxPQUFPLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRWhELE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBRzVFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDBCQUEwQixDQUFDOzs7OztBQUkvRCxNQUFNLE9BQU8sbUJBQW1CO0lBQzlCLFlBQ1ksZUFBZ0MsRUFDaEMsK0JBQWdFLEVBQ2hFLFVBQW9DO1FBRnBDLG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtRQUNoQyxvQ0FBK0IsR0FBL0IsK0JBQStCLENBQWlDO1FBQ2hFLGVBQVUsR0FBVixVQUFVLENBQTBCO0lBQzdDLENBQUM7SUFJSjs7T0FFRztJQUNILFVBQVU7UUFDUixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxVQUFVO2FBQ2hDLFNBQVMsQ0FBQyxTQUFTLENBQUM7YUFDcEIsSUFBSTtRQUNILG1FQUFtRTtRQUNuRSxTQUFTLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLCtCQUErQixDQUFDLFFBQVEsRUFBRSxDQUFDLEVBQ2hFLFNBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxDQUN6QzthQUNBLFNBQVMsRUFBRSxDQUFDO0lBQ2pCLENBQUM7SUFFRDs7OztPQUlHO0lBQ08sZ0JBQWdCO1FBQ3hCLE9BQU8sSUFBSSxDQUFDLFVBQVU7YUFDbkIsU0FBUyxDQUFDLFNBQVMsQ0FBQzthQUNwQixJQUFJLENBQ0gsR0FBRyxDQUFDLENBQUMsTUFBeUIsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQ3RFLENBQUM7SUFDTixDQUFDO0lBRUQ7OztPQUdHO0lBQ08sb0JBQW9CLENBQUMsTUFBeUI7UUFDdEQsSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsYUFBYSxFQUFFLEVBQUU7WUFDekMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxTQUFTLENBQzVCLDBCQUEwQixDQUFDLE1BQU0sRUFBRSxtQkFBbUIsQ0FBQyxDQUN4RCxDQUFDO1NBQ0g7SUFDSCxDQUFDO0lBRUQsV0FBVzs7UUFDVCxNQUFBLElBQUksQ0FBQyxZQUFZLDBDQUFFLFdBQVcsRUFBRSxDQUFDO0lBQ25DLENBQUM7O2dIQWxEVSxtQkFBbUI7b0hBQW5CLG1CQUFtQixjQUROLE1BQU07MkZBQ25CLG1CQUFtQjtrQkFEL0IsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBPbkRlc3Ryb3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgc3dpdGNoTWFwLCB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBDb25maWdJbml0aWFsaXplclNlcnZpY2UgfSBmcm9tICcuLi8uLi9jb25maWcvY29uZmlnLWluaXRpYWxpemVyL2NvbmZpZy1pbml0aWFsaXplci5zZXJ2aWNlJztcbmltcG9ydCB7IGdldENvbnRleHRQYXJhbWV0ZXJEZWZhdWx0IH0gZnJvbSAnLi4vY29uZmlnL2NvbnRleHQtY29uZmlnLXV0aWxzJztcbmltcG9ydCB7IFNpdGVDb250ZXh0Q29uZmlnIH0gZnJvbSAnLi4vY29uZmlnL3NpdGUtY29udGV4dC1jb25maWcnO1xuaW1wb3J0IHsgTGFuZ3VhZ2VTZXJ2aWNlIH0gZnJvbSAnLi4vZmFjYWRlL2xhbmd1YWdlLnNlcnZpY2UnO1xuaW1wb3J0IHsgTEFOR1VBR0VfQ09OVEVYVF9JRCB9IGZyb20gJy4uL3Byb3ZpZGVycy9jb250ZXh0LWlkcyc7XG5pbXBvcnQgeyBMYW5ndWFnZVN0YXRlUGVyc2lzdGVuY2VTZXJ2aWNlIH0gZnJvbSAnLi9sYW5ndWFnZS1zdGF0ZS1wZXJzaXN0ZW5jZS5zZXJ2aWNlJztcblxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBMYW5ndWFnZUluaXRpYWxpemVyIGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHJvdGVjdGVkIGxhbmd1YWdlU2VydmljZTogTGFuZ3VhZ2VTZXJ2aWNlLFxuICAgIHByb3RlY3RlZCBsYW5ndWFnZVN0YXRlUGVyc2lzdGVuY2VTZXJ2aWNlOiBMYW5ndWFnZVN0YXRlUGVyc2lzdGVuY2VTZXJ2aWNlLFxuICAgIHByb3RlY3RlZCBjb25maWdJbml0OiBDb25maWdJbml0aWFsaXplclNlcnZpY2VcbiAgKSB7fVxuXG4gIHByb3RlY3RlZCBzdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcblxuICAvKipcbiAgICogSW5pdGlhbGl6ZXMgdGhlIHZhbHVlIG9mIHRoZSBhY3RpdmUgbGFuZ3VhZ2UuXG4gICAqL1xuICBpbml0aWFsaXplKCk6IHZvaWQge1xuICAgIHRoaXMuc3Vic2NyaXB0aW9uID0gdGhpcy5jb25maWdJbml0XG4gICAgICAuZ2V0U3RhYmxlKCdjb250ZXh0JylcbiAgICAgIC5waXBlKFxuICAgICAgICAvLyBUT0RPKCMxMjM1MSk6IDwtLS0gcGx1ZyBoZXJlIGV4cGxpY2l0bHkgU2l0ZUNvbnRleHRSb3V0ZXNIYW5kbGVyXG4gICAgICAgIHN3aXRjaE1hcCgoKSA9PiB0aGlzLmxhbmd1YWdlU3RhdGVQZXJzaXN0ZW5jZVNlcnZpY2UuaW5pdFN5bmMoKSksXG4gICAgICAgIHN3aXRjaE1hcCgoKSA9PiB0aGlzLnNldEZhbGxiYWNrVmFsdWUoKSlcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBPbiBzdWJzY3JpcHRpb24gdG8gdGhlIHJldHVybmVkIG9ic2VydmFibGU6XG4gICAqXG4gICAqIFNldHMgdGhlIGRlZmF1bHQgdmFsdWUgdGFrZW4gZnJvbSBjb25maWcsIHVubGVzcyB0aGUgYWN0aXZlIGxhbmd1YWdlIGhhcyBiZWVuIGFscmVhZHkgaW5pdGlhbGl6ZWQuXG4gICAqL1xuICBwcm90ZWN0ZWQgc2V0RmFsbGJhY2tWYWx1ZSgpOiBPYnNlcnZhYmxlPHVua25vd24+IHtcbiAgICByZXR1cm4gdGhpcy5jb25maWdJbml0XG4gICAgICAuZ2V0U3RhYmxlKCdjb250ZXh0JylcbiAgICAgIC5waXBlKFxuICAgICAgICB0YXAoKGNvbmZpZzogU2l0ZUNvbnRleHRDb25maWcpID0+IHRoaXMuc2V0RGVmYXVsdEZyb21Db25maWcoY29uZmlnKSlcbiAgICAgICk7XG4gIH1cblxuICAvKipcbiAgICogU2V0cyB0aGUgYWN0aXZlIGxhbmd1YWdlIHZhbHVlIGJhc2VkIG9uIHRoZSBkZWZhdWx0IHZhbHVlIGZyb20gdGhlIGNvbmZpZyxcbiAgICogdW5sZXNzIHRoZSBhY3RpdmUgbGFuZ3VhZ2UgaGFzIGJlZW4gYWxyZWFkeSBpbml0aWFsaXplZC5cbiAgICovXG4gIHByb3RlY3RlZCBzZXREZWZhdWx0RnJvbUNvbmZpZyhjb25maWc6IFNpdGVDb250ZXh0Q29uZmlnKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmxhbmd1YWdlU2VydmljZS5pc0luaXRpYWxpemVkKCkpIHtcbiAgICAgIHRoaXMubGFuZ3VhZ2VTZXJ2aWNlLnNldEFjdGl2ZShcbiAgICAgICAgZ2V0Q29udGV4dFBhcmFtZXRlckRlZmF1bHQoY29uZmlnLCBMQU5HVUFHRV9DT05URVhUX0lEKVxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbj8udW5zdWJzY3JpYmUoKTtcbiAgfVxufVxuIl19