UNPKG

@spartacus/storefront

Version:

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

49 lines 7.25 kB
import { Injectable } from '@angular/core'; import { combineLatest, of } from 'rxjs'; import { map } from 'rxjs/operators'; import * as i0 from "@angular/core"; import * as i1 from "@spartacus/core"; export class CartPageLayoutHandler { constructor(activeCartService, selectiveCartService) { this.activeCartService = activeCartService; this.selectiveCartService = selectiveCartService; } handle(slots$, pageTemplate, section) { if (pageTemplate === 'CartPageTemplate' && !section) { return combineLatest([ slots$, this.activeCartService.getActive(), this.selectiveCartService.isEnabled() ? this.selectiveCartService.getCart() : of({}), this.activeCartService.getLoading(), ]).pipe(map(([slots, cart, selectiveCart, loadingCart]) => { const exclude = (arr, args) => arr.filter((item) => args.every((arg) => arg !== item)); return Object.keys(cart).length === 0 && loadingCart ? exclude(slots, [ 'TopContent', 'CenterRightContentSlot', 'EmptyCartMiddleContent', ]) : cart.totalItems ? exclude(slots, ['EmptyCartMiddleContent']) : selectiveCart.totalItems ? exclude(slots, [ 'EmptyCartMiddleContent', 'CenterRightContentSlot', ]) : exclude(slots, ['TopContent', 'CenterRightContentSlot']); })); } return slots$; } } CartPageLayoutHandler.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: CartPageLayoutHandler, deps: [{ token: i1.ActiveCartService }, { token: i1.SelectiveCartService }], target: i0.ɵɵFactoryTarget.Injectable }); CartPageLayoutHandler.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: CartPageLayoutHandler, providedIn: 'root' }); i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: CartPageLayoutHandler, decorators: [{ type: Injectable, args: [{ providedIn: 'root', }] }], ctorParameters: function () { return [{ type: i1.ActiveCartService }, { type: i1.SelectiveCartService }]; } }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FydC1wYWdlLWxheW91dC1oYW5kbGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc3RvcmVmcm9udGxpYi9jbXMtY29tcG9uZW50cy9jYXJ0L2NhcnQtcGFnZS1sYXlvdXQtaGFuZGxlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sRUFBRSxhQUFhLEVBQWMsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3JELE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7O0FBTXJDLE1BQU0sT0FBTyxxQkFBcUI7SUFDaEMsWUFDWSxpQkFBb0MsRUFDcEMsb0JBQTBDO1FBRDFDLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7UUFDcEMseUJBQW9CLEdBQXBCLG9CQUFvQixDQUFzQjtJQUNuRCxDQUFDO0lBRUosTUFBTSxDQUNKLE1BQTRCLEVBQzVCLFlBQXFCLEVBQ3JCLE9BQWdCO1FBRWhCLElBQUksWUFBWSxLQUFLLGtCQUFrQixJQUFJLENBQUMsT0FBTyxFQUFFO1lBQ25ELE9BQU8sYUFBYSxDQUFDO2dCQUNuQixNQUFNO2dCQUNOLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxTQUFTLEVBQUU7Z0JBQ2xDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxTQUFTLEVBQUU7b0JBQ25DLENBQUMsQ0FBQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsT0FBTyxFQUFFO29CQUNyQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQVUsQ0FBQztnQkFDbEIsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFVBQVUsRUFBRTthQUNwQyxDQUFDLENBQUMsSUFBSSxDQUNMLEdBQUcsQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLElBQUksRUFBRSxhQUFhLEVBQUUsV0FBVyxDQUFDLEVBQUUsRUFBRTtnQkFDaEQsTUFBTSxPQUFPLEdBQUcsQ0FBQyxHQUFHLEVBQUUsSUFBSSxFQUFFLEVBQUUsQ0FDNUIsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxLQUFLLElBQUksQ0FBQyxDQUFDLENBQUM7Z0JBQzFELE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxJQUFJLFdBQVc7b0JBQ2xELENBQUMsQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFO3dCQUNiLFlBQVk7d0JBQ1osd0JBQXdCO3dCQUN4Qix3QkFBd0I7cUJBQ3pCLENBQUM7b0JBQ0osQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVO3dCQUNqQixDQUFDLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxDQUFDLHdCQUF3QixDQUFDLENBQUM7d0JBQzVDLENBQUMsQ0FBQyxhQUFhLENBQUMsVUFBVTs0QkFDMUIsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUU7Z0NBQ2Isd0JBQXdCO2dDQUN4Qix3QkFBd0I7NkJBQ3pCLENBQUM7NEJBQ0osQ0FBQyxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsQ0FBQyxZQUFZLEVBQUUsd0JBQXdCLENBQUMsQ0FBQyxDQUFDO1lBQy9ELENBQUMsQ0FBQyxDQUNILENBQUM7U0FDSDtRQUNELE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7O2tIQXpDVSxxQkFBcUI7c0hBQXJCLHFCQUFxQixjQUZwQixNQUFNOzJGQUVQLHFCQUFxQjtrQkFIakMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBY3RpdmVDYXJ0U2VydmljZSwgQ2FydCwgU2VsZWN0aXZlQ2FydFNlcnZpY2UgfSBmcm9tICdAc3BhcnRhY3VzL2NvcmUnO1xuaW1wb3J0IHsgY29tYmluZUxhdGVzdCwgT2JzZXJ2YWJsZSwgb2YgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IFBhZ2VMYXlvdXRIYW5kbGVyIH0gZnJvbSAnLi4vLi4vY21zLXN0cnVjdHVyZS9wYWdlL3BhZ2UtbGF5b3V0L3BhZ2UtbGF5b3V0LWhhbmRsZXInO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgQ2FydFBhZ2VMYXlvdXRIYW5kbGVyIGltcGxlbWVudHMgUGFnZUxheW91dEhhbmRsZXIge1xuICBjb25zdHJ1Y3RvcihcbiAgICBwcm90ZWN0ZWQgYWN0aXZlQ2FydFNlcnZpY2U6IEFjdGl2ZUNhcnRTZXJ2aWNlLFxuICAgIHByb3RlY3RlZCBzZWxlY3RpdmVDYXJ0U2VydmljZTogU2VsZWN0aXZlQ2FydFNlcnZpY2VcbiAgKSB7fVxuXG4gIGhhbmRsZShcbiAgICBzbG90cyQ6IE9ic2VydmFibGU8c3RyaW5nW10+LFxuICAgIHBhZ2VUZW1wbGF0ZT86IHN0cmluZyxcbiAgICBzZWN0aW9uPzogc3RyaW5nXG4gICkge1xuICAgIGlmIChwYWdlVGVtcGxhdGUgPT09ICdDYXJ0UGFnZVRlbXBsYXRlJyAmJiAhc2VjdGlvbikge1xuICAgICAgcmV0dXJuIGNvbWJpbmVMYXRlc3QoW1xuICAgICAgICBzbG90cyQsXG4gICAgICAgIHRoaXMuYWN0aXZlQ2FydFNlcnZpY2UuZ2V0QWN0aXZlKCksXG4gICAgICAgIHRoaXMuc2VsZWN0aXZlQ2FydFNlcnZpY2UuaXNFbmFibGVkKClcbiAgICAgICAgICA/IHRoaXMuc2VsZWN0aXZlQ2FydFNlcnZpY2UuZ2V0Q2FydCgpXG4gICAgICAgICAgOiBvZih7fSBhcyBDYXJ0KSxcbiAgICAgICAgdGhpcy5hY3RpdmVDYXJ0U2VydmljZS5nZXRMb2FkaW5nKCksXG4gICAgICBdKS5waXBlKFxuICAgICAgICBtYXAoKFtzbG90cywgY2FydCwgc2VsZWN0aXZlQ2FydCwgbG9hZGluZ0NhcnRdKSA9PiB7XG4gICAgICAgICAgY29uc3QgZXhjbHVkZSA9IChhcnIsIGFyZ3MpID0+XG4gICAgICAgICAgICBhcnIuZmlsdGVyKChpdGVtKSA9PiBhcmdzLmV2ZXJ5KChhcmcpID0+IGFyZyAhPT0gaXRlbSkpO1xuICAgICAgICAgIHJldHVybiBPYmplY3Qua2V5cyhjYXJ0KS5sZW5ndGggPT09IDAgJiYgbG9hZGluZ0NhcnRcbiAgICAgICAgICAgID8gZXhjbHVkZShzbG90cywgW1xuICAgICAgICAgICAgICAgICdUb3BDb250ZW50JyxcbiAgICAgICAgICAgICAgICAnQ2VudGVyUmlnaHRDb250ZW50U2xvdCcsXG4gICAgICAgICAgICAgICAgJ0VtcHR5Q2FydE1pZGRsZUNvbnRlbnQnLFxuICAgICAgICAgICAgICBdKVxuICAgICAgICAgICAgOiBjYXJ0LnRvdGFsSXRlbXNcbiAgICAgICAgICAgID8gZXhjbHVkZShzbG90cywgWydFbXB0eUNhcnRNaWRkbGVDb250ZW50J10pXG4gICAgICAgICAgICA6IHNlbGVjdGl2ZUNhcnQudG90YWxJdGVtc1xuICAgICAgICAgICAgPyBleGNsdWRlKHNsb3RzLCBbXG4gICAgICAgICAgICAgICAgJ0VtcHR5Q2FydE1pZGRsZUNvbnRlbnQnLFxuICAgICAgICAgICAgICAgICdDZW50ZXJSaWdodENvbnRlbnRTbG90JyxcbiAgICAgICAgICAgICAgXSlcbiAgICAgICAgICAgIDogZXhjbHVkZShzbG90cywgWydUb3BDb250ZW50JywgJ0NlbnRlclJpZ2h0Q29udGVudFNsb3QnXSk7XG4gICAgICAgIH0pXG4gICAgICApO1xuICAgIH1cbiAgICByZXR1cm4gc2xvdHMkO1xuICB9XG59XG4iXX0=