@spartacus/core
Version:
Spartacus - the core framework
39 lines • 5.5 kB
JavaScript
import { Injectable } from '@angular/core';
import { ReplaySubject } from 'rxjs';
import { CURRENCY_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/currency.service";
import * as i3 from "../config/site-context-config";
export class CurrencyStatePersistenceService {
constructor(statePersistenceService, currencyService, config) {
this.statePersistenceService = statePersistenceService;
this.currencyService = currencyService;
this.config = config;
this.initialized$ = new ReplaySubject(1);
}
initSync() {
this.statePersistenceService.syncWithStorage({
key: CURRENCY_CONTEXT_ID,
state$: this.currencyService.getActive(),
onRead: (state) => this.onRead(state),
});
return this.initialized$;
}
onRead(valueFromStorage) {
if (!this.currencyService.isInitialized() && valueFromStorage) {
this.currencyService.setActive(valueFromStorage);
}
if (!this.initialized$.closed) {
this.initialized$.next();
this.initialized$.complete();
}
}
}
CurrencyStatePersistenceService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: CurrencyStatePersistenceService, deps: [{ token: i1.StatePersistenceService }, { token: i2.CurrencyService }, { token: i3.SiteContextConfig }], target: i0.ɵɵFactoryTarget.Injectable });
CurrencyStatePersistenceService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: CurrencyStatePersistenceService, providedIn: 'root' });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: CurrencyStatePersistenceService, decorators: [{
type: Injectable,
args: [{ providedIn: 'root' }]
}], ctorParameters: function () { return [{ type: i1.StatePersistenceService }, { type: i2.CurrencyService }, { type: i3.SiteContextConfig }]; } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VycmVuY3ktc3RhdGUtcGVyc2lzdGVuY2Uuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvc3JjL3NpdGUtY29udGV4dC9zZXJ2aWNlcy9jdXJyZW5jeS1zdGF0ZS1wZXJzaXN0ZW5jZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFjLGFBQWEsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUlqRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQzs7Ozs7QUFHL0QsTUFBTSxPQUFPLCtCQUErQjtJQUMxQyxZQUNZLHVCQUFnRCxFQUNoRCxlQUFnQyxFQUNoQyxNQUF5QjtRQUZ6Qiw0QkFBdUIsR0FBdkIsdUJBQXVCLENBQXlCO1FBQ2hELG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtRQUNoQyxXQUFNLEdBQU4sTUFBTSxDQUFtQjtRQUczQixpQkFBWSxHQUFHLElBQUksYUFBYSxDQUFVLENBQUMsQ0FBQyxDQUFDO0lBRnBELENBQUM7SUFJRyxRQUFRO1FBQ2IsSUFBSSxDQUFDLHVCQUF1QixDQUFDLGVBQWUsQ0FBQztZQUMzQyxHQUFHLEVBQUUsbUJBQW1CO1lBQ3hCLE1BQU0sRUFBRSxJQUFJLENBQUMsZUFBZSxDQUFDLFNBQVMsRUFBRTtZQUN4QyxNQUFNLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDO1NBQ3RDLENBQUMsQ0FBQztRQUNILE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQztJQUMzQixDQUFDO0lBRVMsTUFBTSxDQUFDLGdCQUF3QjtRQUN2QyxJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxhQUFhLEVBQUUsSUFBSSxnQkFBZ0IsRUFBRTtZQUM3RCxJQUFJLENBQUMsZUFBZSxDQUFDLFNBQVMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1NBQ2xEO1FBRUQsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxFQUFFO1lBQzdCLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDekIsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLEVBQUUsQ0FBQztTQUM5QjtJQUNILENBQUM7OzRIQTNCVSwrQkFBK0I7Z0lBQS9CLCtCQUErQixjQURsQixNQUFNOzJGQUNuQiwrQkFBK0I7a0JBRDNDLFVBQVU7bUJBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgUmVwbGF5U3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgU3RhdGVQZXJzaXN0ZW5jZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zdGF0ZS9zZXJ2aWNlcy9zdGF0ZS1wZXJzaXN0ZW5jZS5zZXJ2aWNlJztcbmltcG9ydCB7IFNpdGVDb250ZXh0Q29uZmlnIH0gZnJvbSAnLi4vY29uZmlnL3NpdGUtY29udGV4dC1jb25maWcnO1xuaW1wb3J0IHsgQ3VycmVuY3lTZXJ2aWNlIH0gZnJvbSAnLi4vZmFjYWRlL2N1cnJlbmN5LnNlcnZpY2UnO1xuaW1wb3J0IHsgQ1VSUkVOQ1lfQ09OVEVYVF9JRCB9IGZyb20gJy4uL3Byb3ZpZGVycy9jb250ZXh0LWlkcyc7XG5cbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXG5leHBvcnQgY2xhc3MgQ3VycmVuY3lTdGF0ZVBlcnNpc3RlbmNlU2VydmljZSB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHByb3RlY3RlZCBzdGF0ZVBlcnNpc3RlbmNlU2VydmljZTogU3RhdGVQZXJzaXN0ZW5jZVNlcnZpY2UsXG4gICAgcHJvdGVjdGVkIGN1cnJlbmN5U2VydmljZTogQ3VycmVuY3lTZXJ2aWNlLFxuICAgIHByb3RlY3RlZCBjb25maWc6IFNpdGVDb250ZXh0Q29uZmlnXG4gICkge31cblxuICBwcm90ZWN0ZWQgaW5pdGlhbGl6ZWQkID0gbmV3IFJlcGxheVN1YmplY3Q8dW5rbm93bj4oMSk7XG5cbiAgcHVibGljIGluaXRTeW5jKCk6IE9ic2VydmFibGU8dW5rbm93bj4ge1xuICAgIHRoaXMuc3RhdGVQZXJzaXN0ZW5jZVNlcnZpY2Uuc3luY1dpdGhTdG9yYWdlKHtcbiAgICAgIGtleTogQ1VSUkVOQ1lfQ09OVEVYVF9JRCxcbiAgICAgIHN0YXRlJDogdGhpcy5jdXJyZW5jeVNlcnZpY2UuZ2V0QWN0aXZlKCksXG4gICAgICBvblJlYWQ6IChzdGF0ZSkgPT4gdGhpcy5vblJlYWQoc3RhdGUpLFxuICAgIH0pO1xuICAgIHJldHVybiB0aGlzLmluaXRpYWxpemVkJDtcbiAgfVxuXG4gIHByb3RlY3RlZCBvblJlYWQodmFsdWVGcm9tU3RvcmFnZTogc3RyaW5nKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmN1cnJlbmN5U2VydmljZS5pc0luaXRpYWxpemVkKCkgJiYgdmFsdWVGcm9tU3RvcmFnZSkge1xuICAgICAgdGhpcy5jdXJyZW5jeVNlcnZpY2Uuc2V0QWN0aXZlKHZhbHVlRnJvbVN0b3JhZ2UpO1xuICAgIH1cblxuICAgIGlmICghdGhpcy5pbml0aWFsaXplZCQuY2xvc2VkKSB7XG4gICAgICB0aGlzLmluaXRpYWxpemVkJC5uZXh0KCk7XG4gICAgICB0aGlzLmluaXRpYWxpemVkJC5jb21wbGV0ZSgpO1xuICAgIH1cbiAgfVxufVxuIl19