@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
JavaScript
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