UNPKG

@spartacus/core

Version:

Spartacus - the core framework

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