UNPKG

@spartacus/storefront

Version:

Spartacus Storefront is a package that you can include in your application, which allows you to add default storefront features.

35 lines 7.38 kB
import { ChangeDetectionStrategy, Component, Input } from '@angular/core'; import { BehaviorSubject, of } from 'rxjs'; import { distinctUntilChanged, switchMap } from 'rxjs/operators'; import * as i0 from "@angular/core"; import * as i1 from "./page-layout.service"; import * as i2 from "../slot/page-slot.component"; import * as i3 from "./page-template.directive"; import * as i4 from "../../outlet/outlet.directive"; import * as i5 from "@angular/common"; export class PageLayoutComponent { constructor(pageLayoutService) { this.pageLayoutService = pageLayoutService; this.section$ = new BehaviorSubject(undefined); this.templateName$ = this.pageLayoutService.templateName$; this.layoutName$ = this.section$.pipe(switchMap((section) => (section ? of(section) : this.templateName$))); this.slots$ = this.section$.pipe(switchMap((section) => this.pageLayoutService.getSlots(section))); this.pageFoldSlot$ = this.templateName$.pipe(switchMap((templateName) => this.pageLayoutService.getPageFoldSlot(templateName)), distinctUntilChanged()); } set section(value) { this.section$.next(value); } } PageLayoutComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: PageLayoutComponent, deps: [{ token: i1.PageLayoutService }], target: i0.ɵɵFactoryTarget.Component }); PageLayoutComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.0.5", type: PageLayoutComponent, selector: "cx-page-layout", inputs: { section: "section" }, ngImport: i0, template: "<ng-template\n [cxPageTemplateStyle]=\"layoutName$ | async\"\n [cxOutlet]=\"layoutName$ | async\"\n [cxOutletContext]=\"{\n templateName$: templateName$,\n slots$: slots$,\n section$: section$\n }\"\n>\n <ng-content></ng-content>\n\n <cx-page-slot\n *ngFor=\"let slot of slots$ | async\"\n [position]=\"slot\"\n [isPageFold]=\"slot === (pageFoldSlot$ | async)\"\n ></cx-page-slot>\n</ng-template>\n", components: [{ type: i2.PageSlotComponent, selector: "cx-page-slot,[cx-page-slot]", inputs: ["position", "class", "isPageFold", "hasComponents"] }], directives: [{ type: i3.PageTemplateDirective, selector: "[cxPageTemplateStyle]", inputs: ["cxPageTemplateStyle"] }, { type: i4.OutletDirective, selector: "[cxOutlet]", inputs: ["cxOutlet", "cxOutletContext", "cxOutletDefer"], outputs: ["loaded"] }, { type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], pipes: { "async": i5.AsyncPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush }); i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: PageLayoutComponent, decorators: [{ type: Component, args: [{ selector: 'cx-page-layout', templateUrl: './page-layout.component.html', changeDetection: ChangeDetectionStrategy.OnPush, }] }], ctorParameters: function () { return [{ type: i1.PageLayoutService }]; }, propDecorators: { section: [{ type: Input }] } }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnZS1sYXlvdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc3RvcmVmcm9udGxpYi9jbXMtc3RydWN0dXJlL3BhZ2UvcGFnZS1sYXlvdXQvcGFnZS1sYXlvdXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc3RvcmVmcm9udGxpYi9jbXMtc3RydWN0dXJlL3BhZ2UvcGFnZS1sYXlvdXQvcGFnZS1sYXlvdXQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUUsT0FBTyxFQUFFLGVBQWUsRUFBYyxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdkQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7Ozs7O0FBUWpFLE1BQU0sT0FBTyxtQkFBbUI7SUF3QjlCLFlBQXNCLGlCQUFvQztRQUFwQyxzQkFBaUIsR0FBakIsaUJBQWlCLENBQW1CO1FBcEJqRCxhQUFRLEdBQTRCLElBQUksZUFBZSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBRW5FLGtCQUFhLEdBQ3BCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxhQUFhLENBQUM7UUFFOUIsZ0JBQVcsR0FBdUIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQzNELFNBQVMsQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQ3JFLENBQUM7UUFFTyxXQUFNLEdBQXlCLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUN4RCxTQUFTLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FDakUsQ0FBQztRQUVPLGtCQUFhLEdBQXVCLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUNsRSxTQUFTLENBQUMsQ0FBQyxZQUFZLEVBQUUsRUFBRSxDQUN6QixJQUFJLENBQUMsaUJBQWlCLENBQUMsZUFBZSxDQUFDLFlBQVksQ0FBQyxDQUNyRCxFQUNELG9CQUFvQixFQUFFLENBQ3ZCLENBQUM7SUFFMkQsQ0FBQztJQXZCOUQsSUFBYSxPQUFPLENBQUMsS0FBYTtRQUNoQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM1QixDQUFDOztnSEFIVSxtQkFBbUI7b0dBQW5CLG1CQUFtQixzRkNWaEMseWFBaUJBOzJGRFBhLG1CQUFtQjtrQkFML0IsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsZ0JBQWdCO29CQUMxQixXQUFXLEVBQUUsOEJBQThCO29CQUMzQyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtpQkFDaEQ7d0dBRWMsT0FBTztzQkFBbkIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUsIG9mIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBkaXN0aW5jdFVudGlsQ2hhbmdlZCwgc3dpdGNoTWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgUGFnZUxheW91dFNlcnZpY2UgfSBmcm9tICcuL3BhZ2UtbGF5b3V0LnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjeC1wYWdlLWxheW91dCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9wYWdlLWxheW91dC5jb21wb25lbnQuaHRtbCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBQYWdlTGF5b3V0Q29tcG9uZW50IHtcbiAgQElucHV0KCkgc2V0IHNlY3Rpb24odmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMuc2VjdGlvbiQubmV4dCh2YWx1ZSk7XG4gIH1cbiAgcmVhZG9ubHkgc2VjdGlvbiQ6IEJlaGF2aW9yU3ViamVjdDxzdHJpbmc+ID0gbmV3IEJlaGF2aW9yU3ViamVjdCh1bmRlZmluZWQpO1xuXG4gIHJlYWRvbmx5IHRlbXBsYXRlTmFtZSQ6IE9ic2VydmFibGU8c3RyaW5nPiA9XG4gICAgdGhpcy5wYWdlTGF5b3V0U2VydmljZS50ZW1wbGF0ZU5hbWUkO1xuXG4gIHJlYWRvbmx5IGxheW91dE5hbWUkOiBPYnNlcnZhYmxlPHN0cmluZz4gPSB0aGlzLnNlY3Rpb24kLnBpcGUoXG4gICAgc3dpdGNoTWFwKChzZWN0aW9uKSA9PiAoc2VjdGlvbiA/IG9mKHNlY3Rpb24pIDogdGhpcy50ZW1wbGF0ZU5hbWUkKSlcbiAgKTtcblxuICByZWFkb25seSBzbG90cyQ6IE9ic2VydmFibGU8c3RyaW5nW10+ID0gdGhpcy5zZWN0aW9uJC5waXBlKFxuICAgIHN3aXRjaE1hcCgoc2VjdGlvbikgPT4gdGhpcy5wYWdlTGF5b3V0U2VydmljZS5nZXRTbG90cyhzZWN0aW9uKSlcbiAgKTtcblxuICByZWFkb25seSBwYWdlRm9sZFNsb3QkOiBPYnNlcnZhYmxlPHN0cmluZz4gPSB0aGlzLnRlbXBsYXRlTmFtZSQucGlwZShcbiAgICBzd2l0Y2hNYXAoKHRlbXBsYXRlTmFtZSkgPT5cbiAgICAgIHRoaXMucGFnZUxheW91dFNlcnZpY2UuZ2V0UGFnZUZvbGRTbG90KHRlbXBsYXRlTmFtZSlcbiAgICApLFxuICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKClcbiAgKTtcblxuICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgcGFnZUxheW91dFNlcnZpY2U6IFBhZ2VMYXlvdXRTZXJ2aWNlKSB7fVxufVxuIiwiPG5nLXRlbXBsYXRlXG4gIFtjeFBhZ2VUZW1wbGF0ZVN0eWxlXT1cImxheW91dE5hbWUkIHwgYXN5bmNcIlxuICBbY3hPdXRsZXRdPVwibGF5b3V0TmFtZSQgfCBhc3luY1wiXG4gIFtjeE91dGxldENvbnRleHRdPVwie1xuICAgIHRlbXBsYXRlTmFtZSQ6IHRlbXBsYXRlTmFtZSQsXG4gICAgc2xvdHMkOiBzbG90cyQsXG4gICAgc2VjdGlvbiQ6IHNlY3Rpb24kXG4gIH1cIlxuPlxuICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG5cbiAgPGN4LXBhZ2Utc2xvdFxuICAgICpuZ0Zvcj1cImxldCBzbG90IG9mIHNsb3RzJCB8IGFzeW5jXCJcbiAgICBbcG9zaXRpb25dPVwic2xvdFwiXG4gICAgW2lzUGFnZUZvbGRdPVwic2xvdCA9PT0gKHBhZ2VGb2xkU2xvdCQgfCBhc3luYylcIlxuICA+PC9jeC1wYWdlLXNsb3Q+XG48L25nLXRlbXBsYXRlPlxuIl19