@spartacus/storefront
Version:
Spartacus Storefront is a package that you can include in your application, which allows you to add default storefront features.
44 lines • 5.39 kB
JavaScript
import { Injectable, Injector } from '@angular/core';
import { CmsComponentData } from '../../model/cms-component-data';
import { ComponentDataProvider } from './component-data.provider';
import * as i0 from "@angular/core";
import * as i1 from "../../../services/cms-components.service";
/**
* Used to prepare injector for CMS components.
*
* Injector will take into account configured providers and provides CmsComponentData
* for specified component's uid
*/
export class CmsInjectorService {
constructor(cmsComponentsService, injector) {
this.cmsComponentsService = cmsComponentsService;
this.injector = injector;
}
getInjector(type, uid, parentInjector) {
var _a, _b;
const configProviders = (_b = (_a = this.cmsComponentsService.getMapping(type)) === null || _a === void 0 ? void 0 : _a.providers) !== null && _b !== void 0 ? _b : [];
return Injector.create({
providers: [
{
provide: CmsComponentData,
useFactory: (dataProvider) => ({
uid,
data$: dataProvider.get(uid, type),
}),
deps: [ComponentDataProvider],
},
...configProviders,
],
parent: parentInjector !== null && parentInjector !== void 0 ? parentInjector : this.injector,
});
}
}
CmsInjectorService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: CmsInjectorService, deps: [{ token: i1.CmsComponentsService }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Injectable });
CmsInjectorService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: CmsInjectorService, providedIn: 'root' });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: CmsInjectorService, decorators: [{
type: Injectable,
args: [{
providedIn: 'root',
}]
}], ctorParameters: function () { return [{ type: i1.CmsComponentsService }, { type: i0.Injector }]; } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY21zLWluamVjdG9yLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zdG9yZWZyb250bGliL2Ntcy1zdHJ1Y3R1cmUvcGFnZS9jb21wb25lbnQvc2VydmljZXMvY21zLWluamVjdG9yLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFckQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDbEUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7OztBQUVsRTs7Ozs7R0FLRztBQUlILE1BQU0sT0FBTyxrQkFBa0I7SUFDN0IsWUFDWSxvQkFBMEMsRUFDMUMsUUFBa0I7UUFEbEIseUJBQW9CLEdBQXBCLG9CQUFvQixDQUFzQjtRQUMxQyxhQUFRLEdBQVIsUUFBUSxDQUFVO0lBQzNCLENBQUM7SUFFRyxXQUFXLENBQ2hCLElBQVksRUFDWixHQUFXLEVBQ1gsY0FBeUI7O1FBRXpCLE1BQU0sZUFBZSxHQUNuQixNQUFBLE1BQUEsSUFBSSxDQUFDLG9CQUFvQixDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsMENBQUUsU0FBUyxtQ0FBSSxFQUFFLENBQUM7UUFDOUQsT0FBTyxRQUFRLENBQUMsTUFBTSxDQUFDO1lBQ3JCLFNBQVMsRUFBRTtnQkFDVDtvQkFDRSxPQUFPLEVBQUUsZ0JBQWdCO29CQUN6QixVQUFVLEVBQUUsQ0FBQyxZQUFtQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO3dCQUNwRCxHQUFHO3dCQUNILEtBQUssRUFBRSxZQUFZLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUM7cUJBQ25DLENBQUM7b0JBQ0YsSUFBSSxFQUFFLENBQUMscUJBQXFCLENBQUM7aUJBQzlCO2dCQUNELEdBQUcsZUFBZTthQUNuQjtZQUNELE1BQU0sRUFBRSxjQUFjLGFBQWQsY0FBYyxjQUFkLGNBQWMsR0FBSSxJQUFJLENBQUMsUUFBUTtTQUN4QyxDQUFDLENBQUM7SUFDTCxDQUFDOzsrR0EzQlUsa0JBQWtCO21IQUFsQixrQkFBa0IsY0FGakIsTUFBTTsyRkFFUCxrQkFBa0I7a0JBSDlCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgSW5qZWN0b3IgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENtc0NvbXBvbmVudHNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvY21zLWNvbXBvbmVudHMuc2VydmljZSc7XG5pbXBvcnQgeyBDbXNDb21wb25lbnREYXRhIH0gZnJvbSAnLi4vLi4vbW9kZWwvY21zLWNvbXBvbmVudC1kYXRhJztcbmltcG9ydCB7IENvbXBvbmVudERhdGFQcm92aWRlciB9IGZyb20gJy4vY29tcG9uZW50LWRhdGEucHJvdmlkZXInO1xuXG4vKipcbiAqIFVzZWQgdG8gcHJlcGFyZSBpbmplY3RvciBmb3IgQ01TIGNvbXBvbmVudHMuXG4gKlxuICogSW5qZWN0b3Igd2lsbCB0YWtlIGludG8gYWNjb3VudCBjb25maWd1cmVkIHByb3ZpZGVycyBhbmQgcHJvdmlkZXMgQ21zQ29tcG9uZW50RGF0YVxuICogZm9yIHNwZWNpZmllZCBjb21wb25lbnQncyB1aWRcbiAqL1xuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIENtc0luamVjdG9yU2VydmljZSB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHByb3RlY3RlZCBjbXNDb21wb25lbnRzU2VydmljZTogQ21zQ29tcG9uZW50c1NlcnZpY2UsXG4gICAgcHJvdGVjdGVkIGluamVjdG9yOiBJbmplY3RvclxuICApIHt9XG5cbiAgcHVibGljIGdldEluamVjdG9yKFxuICAgIHR5cGU6IHN0cmluZyxcbiAgICB1aWQ6IHN0cmluZyxcbiAgICBwYXJlbnRJbmplY3Rvcj86IEluamVjdG9yXG4gICk6IEluamVjdG9yIHtcbiAgICBjb25zdCBjb25maWdQcm92aWRlcnMgPVxuICAgICAgdGhpcy5jbXNDb21wb25lbnRzU2VydmljZS5nZXRNYXBwaW5nKHR5cGUpPy5wcm92aWRlcnMgPz8gW107XG4gICAgcmV0dXJuIEluamVjdG9yLmNyZWF0ZSh7XG4gICAgICBwcm92aWRlcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgIHByb3ZpZGU6IENtc0NvbXBvbmVudERhdGEsXG4gICAgICAgICAgdXNlRmFjdG9yeTogKGRhdGFQcm92aWRlcjogQ29tcG9uZW50RGF0YVByb3ZpZGVyKSA9PiAoe1xuICAgICAgICAgICAgdWlkLFxuICAgICAgICAgICAgZGF0YSQ6IGRhdGFQcm92aWRlci5nZXQodWlkLCB0eXBlKSxcbiAgICAgICAgICB9KSxcbiAgICAgICAgICBkZXBzOiBbQ29tcG9uZW50RGF0YVByb3ZpZGVyXSxcbiAgICAgICAgfSxcbiAgICAgICAgLi4uY29uZmlnUHJvdmlkZXJzLFxuICAgICAgXSxcbiAgICAgIHBhcmVudDogcGFyZW50SW5qZWN0b3IgPz8gdGhpcy5pbmplY3RvcixcbiAgICB9KTtcbiAgfVxufVxuIl19