UNPKG

@spartacus/cart

Version:

`@spartacus/cart` is a package that you can include in your application, which allows you to use various cart features.

38 lines 7.35 kB
import { Injectable } from '@angular/core'; import { CartOrderEntriesContext, OrderEntriesSource, } from '@spartacus/storefront'; import { combineLatest } from 'rxjs'; import { distinctUntilChanged, map, switchMap, tap } from 'rxjs/operators'; import * as i0 from "@angular/core"; import * as i1 from "@ngrx/store"; import * as i2 from "@spartacus/core"; import * as i3 from "../../facade/saved-cart.facade"; export class SavedCartOrderEntriesContext extends CartOrderEntriesContext { constructor(actionsSubject, userIdService, multiCartService, savedCartService, routingService) { super(actionsSubject); this.actionsSubject = actionsSubject; this.userIdService = userIdService; this.multiCartService = multiCartService; this.savedCartService = savedCartService; this.routingService = routingService; this.type = OrderEntriesSource.SAVED_CART; this.savedCartId$ = this.routingService.getRouterState().pipe(map((routingData) => routingData.state.params.savedCartId), distinctUntilChanged()); } getEntries() { return this.savedCartId$.pipe(switchMap((cartId) => this.savedCartService.get(cartId)), map((cart) => { var _a; return (_a = cart === null || cart === void 0 ? void 0 : cart.entries) !== null && _a !== void 0 ? _a : []; })); } add(products) { return combineLatest([ this.userIdService.takeUserId(), this.savedCartId$, ]).pipe(tap(([userId, cartId]) => this.multiCartService.addEntries(userId, cartId, products)), map(([_userId, cartId]) => cartId)); } } SavedCartOrderEntriesContext.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: SavedCartOrderEntriesContext, deps: [{ token: i1.ActionsSubject }, { token: i2.UserIdService }, { token: i2.MultiCartService }, { token: i3.SavedCartFacade }, { token: i2.RoutingService }], target: i0.ɵɵFactoryTarget.Injectable }); SavedCartOrderEntriesContext.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: SavedCartOrderEntriesContext, providedIn: 'root' }); i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: SavedCartOrderEntriesContext, decorators: [{ type: Injectable, args: [{ providedIn: 'root', }] }], ctorParameters: function () { return [{ type: i1.ActionsSubject }, { type: i2.UserIdService }, { type: i2.MultiCartService }, { type: i3.SavedCartFacade }, { type: i2.RoutingService }]; } }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2F2ZWQtY2FydC1vcmRlci1lbnRyaWVzLWNvbnRleHQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9mZWF0dXJlLWxpYnMvY2FydC9zYXZlZC1jYXJ0L3Jvb3QvcGFnZXMvc2F2ZWQtY2FydC1kZXRhaWxzLXBhZ2Uvc2F2ZWQtY2FydC1vcmRlci1lbnRyaWVzLWNvbnRleHQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQVMzQyxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLGtCQUFrQixHQUluQixNQUFNLHVCQUF1QixDQUFDO0FBQy9CLE9BQU8sRUFBRSxhQUFhLEVBQWMsTUFBTSxNQUFNLENBQUM7QUFDakQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7O0FBTTNFLE1BQU0sT0FBTyw0QkFDWCxTQUFRLHVCQUF1QjtJQUsvQixZQUNZLGNBQThCLEVBQzlCLGFBQTRCLEVBQzVCLGdCQUFrQyxFQUNsQyxnQkFBaUMsRUFDakMsY0FBOEI7UUFFeEMsS0FBSyxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBTlosbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQzlCLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBQzVCLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFDbEMscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFpQjtRQUNqQyxtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFQakMsU0FBSSxHQUFHLGtCQUFrQixDQUFDLFVBQVUsQ0FBQztRQVlwQyxpQkFBWSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsY0FBYyxFQUFFLENBQUMsSUFBSSxDQUNoRSxHQUFHLENBQUMsQ0FBQyxXQUFXLEVBQUUsRUFBRSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxFQUMxRCxvQkFBb0IsRUFBRSxDQUN2QixDQUFDO0lBTEYsQ0FBQztJQU9ELFVBQVU7UUFDUixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUMzQixTQUFTLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsRUFDeEQsR0FBRyxDQUFDLENBQUMsSUFBc0IsRUFBRSxFQUFFLFdBQUMsT0FBQSxNQUFBLElBQUksYUFBSixJQUFJLHVCQUFKLElBQUksQ0FBRSxPQUFPLG1DQUFLLEVBQW1CLENBQUEsRUFBQSxDQUFDLENBQ3ZFLENBQUM7SUFDSixDQUFDO0lBRVMsR0FBRyxDQUFDLFFBQXVCO1FBQ25DLE9BQU8sYUFBYSxDQUFDO1lBQ25CLElBQUksQ0FBQyxhQUFhLENBQUMsVUFBVSxFQUFFO1lBQy9CLElBQUksQ0FBQyxZQUFZO1NBQ2xCLENBQUMsQ0FBQyxJQUFJLENBQ0wsR0FBRyxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLEVBQUUsRUFBRSxDQUN2QixJQUFJLENBQUMsZ0JBQWdCLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRSxNQUFNLEVBQUUsUUFBUSxDQUFDLENBQzNELEVBQ0QsR0FBRyxDQUFDLENBQUMsQ0FBQyxPQUFPLEVBQUUsTUFBTSxDQUFDLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUNuQyxDQUFDO0lBQ0osQ0FBQzs7eUhBdENVLDRCQUE0Qjs2SEFBNUIsNEJBQTRCLGNBRjNCLE1BQU07MkZBRVAsNEJBQTRCO2tCQUh4QyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFjdGlvbnNTdWJqZWN0IH0gZnJvbSAnQG5ncngvc3RvcmUnO1xuaW1wb3J0IHtcbiAgQ2FydCxcbiAgTXVsdGlDYXJ0U2VydmljZSxcbiAgT3JkZXJFbnRyeSxcbiAgUm91dGluZ1NlcnZpY2UsXG4gIFVzZXJJZFNlcnZpY2UsXG59IGZyb20gJ0BzcGFydGFjdXMvY29yZSc7XG5pbXBvcnQge1xuICBDYXJ0T3JkZXJFbnRyaWVzQ29udGV4dCxcbiAgT3JkZXJFbnRyaWVzU291cmNlLFxuICBHZXRPcmRlckVudHJpZXNDb250ZXh0LFxuICBBZGRPcmRlckVudHJpZXNDb250ZXh0LFxuICBQcm9kdWN0RGF0YSxcbn0gZnJvbSAnQHNwYXJ0YWN1cy9zdG9yZWZyb250JztcbmltcG9ydCB7IGNvbWJpbmVMYXRlc3QsIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBtYXAsIHN3aXRjaE1hcCwgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgU2F2ZWRDYXJ0RmFjYWRlIH0gZnJvbSAnLi4vLi4vZmFjYWRlL3NhdmVkLWNhcnQuZmFjYWRlJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIFNhdmVkQ2FydE9yZGVyRW50cmllc0NvbnRleHRcbiAgZXh0ZW5kcyBDYXJ0T3JkZXJFbnRyaWVzQ29udGV4dFxuICBpbXBsZW1lbnRzIEFkZE9yZGVyRW50cmllc0NvbnRleHQsIEdldE9yZGVyRW50cmllc0NvbnRleHRcbntcbiAgcmVhZG9ubHkgdHlwZSA9IE9yZGVyRW50cmllc1NvdXJjZS5TQVZFRF9DQVJUO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByb3RlY3RlZCBhY3Rpb25zU3ViamVjdDogQWN0aW9uc1N1YmplY3QsXG4gICAgcHJvdGVjdGVkIHVzZXJJZFNlcnZpY2U6IFVzZXJJZFNlcnZpY2UsXG4gICAgcHJvdGVjdGVkIG11bHRpQ2FydFNlcnZpY2U6IE11bHRpQ2FydFNlcnZpY2UsXG4gICAgcHJvdGVjdGVkIHNhdmVkQ2FydFNlcnZpY2U6IFNhdmVkQ2FydEZhY2FkZSxcbiAgICBwcm90ZWN0ZWQgcm91dGluZ1NlcnZpY2U6IFJvdXRpbmdTZXJ2aWNlXG4gICkge1xuICAgIHN1cGVyKGFjdGlvbnNTdWJqZWN0KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBzYXZlZENhcnRJZCQgPSB0aGlzLnJvdXRpbmdTZXJ2aWNlLmdldFJvdXRlclN0YXRlKCkucGlwZShcbiAgICBtYXAoKHJvdXRpbmdEYXRhKSA9PiByb3V0aW5nRGF0YS5zdGF0ZS5wYXJhbXMuc2F2ZWRDYXJ0SWQpLFxuICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKClcbiAgKTtcblxuICBnZXRFbnRyaWVzKCk6IE9ic2VydmFibGU8T3JkZXJFbnRyeVtdPiB7XG4gICAgcmV0dXJuIHRoaXMuc2F2ZWRDYXJ0SWQkLnBpcGUoXG4gICAgICBzd2l0Y2hNYXAoKGNhcnRJZCkgPT4gdGhpcy5zYXZlZENhcnRTZXJ2aWNlLmdldChjYXJ0SWQpKSxcbiAgICAgIG1hcCgoY2FydDogQ2FydCB8IHVuZGVmaW5lZCkgPT4gY2FydD8uZW50cmllcyA/PyAoW10gYXMgT3JkZXJFbnRyeVtdKSlcbiAgICApO1xuICB9XG5cbiAgcHJvdGVjdGVkIGFkZChwcm9kdWN0czogUHJvZHVjdERhdGFbXSk6IE9ic2VydmFibGU8c3RyaW5nPiB7XG4gICAgcmV0dXJuIGNvbWJpbmVMYXRlc3QoW1xuICAgICAgdGhpcy51c2VySWRTZXJ2aWNlLnRha2VVc2VySWQoKSxcbiAgICAgIHRoaXMuc2F2ZWRDYXJ0SWQkLFxuICAgIF0pLnBpcGUoXG4gICAgICB0YXAoKFt1c2VySWQsIGNhcnRJZF0pID0+XG4gICAgICAgIHRoaXMubXVsdGlDYXJ0U2VydmljZS5hZGRFbnRyaWVzKHVzZXJJZCwgY2FydElkLCBwcm9kdWN0cylcbiAgICAgICksXG4gICAgICBtYXAoKFtfdXNlcklkLCBjYXJ0SWRdKSA9PiBjYXJ0SWQpXG4gICAgKTtcbiAgfVxufVxuIl19