UNPKG

@spartacus/core

Version:

Spartacus - the core framework

44 lines 5.98 kB
import { Injectable } from '@angular/core'; import { ReplaySubject } from 'rxjs'; import { LANGUAGE_CONTEXT_ID } from '../providers/context-ids'; import * as i0 from "@angular/core"; import * as i1 from "../../state/services/state-persistence.service"; import * as i2 from "../facade/language.service"; import * as i3 from "../config/site-context-config"; export class LanguageStatePersistenceService { constructor(statePersistenceService, languageService, config) { this.statePersistenceService = statePersistenceService; this.languageService = languageService; this.config = config; this.initialized$ = new ReplaySubject(1); } /** * Initializes the synchronization of the active language with the local storage. * * @returns Observable that emits and completes when the value is read from the storage. */ initSync() { this.statePersistenceService.syncWithStorage({ key: LANGUAGE_CONTEXT_ID, state$: this.languageService.getActive(), onRead: (state) => this.onRead(state), }); return this.initialized$; } onRead(valueFromStorage) { if (!this.languageService.isInitialized() && valueFromStorage) { this.languageService.setActive(valueFromStorage); } if (!this.initialized$.closed) { this.initialized$.next(); this.initialized$.complete(); } } } LanguageStatePersistenceService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: LanguageStatePersistenceService, deps: [{ token: i1.StatePersistenceService }, { token: i2.LanguageService }, { token: i3.SiteContextConfig }], target: i0.ɵɵFactoryTarget.Injectable }); LanguageStatePersistenceService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: LanguageStatePersistenceService, providedIn: 'root' }); i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: LanguageStatePersistenceService, decorators: [{ type: Injectable, args: [{ providedIn: 'root' }] }], ctorParameters: function () { return [{ type: i1.StatePersistenceService }, { type: i2.LanguageService }, { type: i3.SiteContextConfig }]; } }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGFuZ3VhZ2Utc3RhdGUtcGVyc2lzdGVuY2Uuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvc3JjL3NpdGUtY29udGV4dC9zZXJ2aWNlcy9sYW5ndWFnZS1zdGF0ZS1wZXJzaXN0ZW5jZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFjLGFBQWEsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUlqRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQzs7Ozs7QUFHL0QsTUFBTSxPQUFPLCtCQUErQjtJQUMxQyxZQUNZLHVCQUFnRCxFQUNoRCxlQUFnQyxFQUNoQyxNQUF5QjtRQUZ6Qiw0QkFBdUIsR0FBdkIsdUJBQXVCLENBQXlCO1FBQ2hELG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtRQUNoQyxXQUFNLEdBQU4sTUFBTSxDQUFtQjtRQUczQixpQkFBWSxHQUFHLElBQUksYUFBYSxDQUFVLENBQUMsQ0FBQyxDQUFDO0lBRnBELENBQUM7SUFJSjs7OztPQUlHO0lBQ0ksUUFBUTtRQUNiLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxlQUFlLENBQUM7WUFDM0MsR0FBRyxFQUFFLG1CQUFtQjtZQUN4QixNQUFNLEVBQUUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxTQUFTLEVBQUU7WUFDeEMsTUFBTSxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQztTQUN0QyxDQUFDLENBQUM7UUFDSCxPQUFPLElBQUksQ0FBQyxZQUFZLENBQUM7SUFDM0IsQ0FBQztJQUVTLE1BQU0sQ0FBQyxnQkFBd0I7UUFDdkMsSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsYUFBYSxFQUFFLElBQUksZ0JBQWdCLEVBQUU7WUFDN0QsSUFBSSxDQUFDLGVBQWUsQ0FBQyxTQUFTLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztTQUNsRDtRQUVELElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sRUFBRTtZQUM3QixJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ3pCLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxFQUFFLENBQUM7U0FDOUI7SUFDSCxDQUFDOzs0SEFoQ1UsK0JBQStCO2dJQUEvQiwrQkFBK0IsY0FEbEIsTUFBTTsyRkFDbkIsK0JBQStCO2tCQUQzQyxVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUsIFJlcGxheVN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFN0YXRlUGVyc2lzdGVuY2VTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc3RhdGUvc2VydmljZXMvc3RhdGUtcGVyc2lzdGVuY2Uuc2VydmljZSc7XG5pbXBvcnQgeyBTaXRlQ29udGV4dENvbmZpZyB9IGZyb20gJy4uL2NvbmZpZy9zaXRlLWNvbnRleHQtY29uZmlnJztcbmltcG9ydCB7IExhbmd1YWdlU2VydmljZSB9IGZyb20gJy4uL2ZhY2FkZS9sYW5ndWFnZS5zZXJ2aWNlJztcbmltcG9ydCB7IExBTkdVQUdFX0NPTlRFWFRfSUQgfSBmcm9tICcuLi9wcm92aWRlcnMvY29udGV4dC1pZHMnO1xuXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIExhbmd1YWdlU3RhdGVQZXJzaXN0ZW5jZVNlcnZpY2Uge1xuICBjb25zdHJ1Y3RvcihcbiAgICBwcm90ZWN0ZWQgc3RhdGVQZXJzaXN0ZW5jZVNlcnZpY2U6IFN0YXRlUGVyc2lzdGVuY2VTZXJ2aWNlLFxuICAgIHByb3RlY3RlZCBsYW5ndWFnZVNlcnZpY2U6IExhbmd1YWdlU2VydmljZSxcbiAgICBwcm90ZWN0ZWQgY29uZmlnOiBTaXRlQ29udGV4dENvbmZpZ1xuICApIHt9XG5cbiAgcHJvdGVjdGVkIGluaXRpYWxpemVkJCA9IG5ldyBSZXBsYXlTdWJqZWN0PHVua25vd24+KDEpO1xuXG4gIC8qKlxuICAgKiBJbml0aWFsaXplcyB0aGUgc3luY2hyb25pemF0aW9uIG9mIHRoZSBhY3RpdmUgbGFuZ3VhZ2Ugd2l0aCB0aGUgbG9jYWwgc3RvcmFnZS5cbiAgICpcbiAgICogQHJldHVybnMgT2JzZXJ2YWJsZSB0aGF0IGVtaXRzIGFuZCBjb21wbGV0ZXMgd2hlbiB0aGUgdmFsdWUgaXMgcmVhZCBmcm9tIHRoZSBzdG9yYWdlLlxuICAgKi9cbiAgcHVibGljIGluaXRTeW5jKCk6IE9ic2VydmFibGU8dW5rbm93bj4ge1xuICAgIHRoaXMuc3RhdGVQZXJzaXN0ZW5jZVNlcnZpY2Uuc3luY1dpdGhTdG9yYWdlKHtcbiAgICAgIGtleTogTEFOR1VBR0VfQ09OVEVYVF9JRCxcbiAgICAgIHN0YXRlJDogdGhpcy5sYW5ndWFnZVNlcnZpY2UuZ2V0QWN0aXZlKCksXG4gICAgICBvblJlYWQ6IChzdGF0ZSkgPT4gdGhpcy5vblJlYWQoc3RhdGUpLFxuICAgIH0pO1xuICAgIHJldHVybiB0aGlzLmluaXRpYWxpemVkJDtcbiAgfVxuXG4gIHByb3RlY3RlZCBvblJlYWQodmFsdWVGcm9tU3RvcmFnZTogc3RyaW5nKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmxhbmd1YWdlU2VydmljZS5pc0luaXRpYWxpemVkKCkgJiYgdmFsdWVGcm9tU3RvcmFnZSkge1xuICAgICAgdGhpcy5sYW5ndWFnZVNlcnZpY2Uuc2V0QWN0aXZlKHZhbHVlRnJvbVN0b3JhZ2UpO1xuICAgIH1cblxuICAgIGlmICghdGhpcy5pbml0aWFsaXplZCQuY2xvc2VkKSB7XG4gICAgICB0aGlzLmluaXRpYWxpemVkJC5uZXh0KCk7XG4gICAgICB0aGlzLmluaXRpYWxpemVkJC5jb21wbGV0ZSgpO1xuICAgIH1cbiAgfVxufVxuIl19