@spartacus/core
Version:
Spartacus - the core framework
54 lines • 6.91 kB
JavaScript
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=