@spartacus/cart
Version:
`@spartacus/cart` is a package that you can include in your application, which allows you to use various cart features.
47 lines • 9.62 kB
JavaScript
import { Injectable } from '@angular/core';
import { CartOrderEntriesContext, OrderEntriesSource, } from '@spartacus/storefront';
import { queueScheduler } from 'rxjs';
import { delayWhen, filter, map, observeOn, switchMap, take, 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 NewSavedCartOrderEntriesContext extends CartOrderEntriesContext {
constructor(actionsSubject, userIdService, multiCartService, savedCartService) {
super(actionsSubject);
this.actionsSubject = actionsSubject;
this.userIdService = userIdService;
this.multiCartService = multiCartService;
this.savedCartService = savedCartService;
this.type = OrderEntriesSource.NEW_SAVED_CART;
}
addEntries(products, savedCartInfo) {
return this.add(products, savedCartInfo).pipe(switchMap((cartId) => this.getResults(cartId)), take(products.length));
}
add(products, savedCartInfo) {
return this.userIdService.takeUserId().pipe(switchMap((userId) => this.multiCartService
.createCart({
userId,
extraData: { active: false },
})
.pipe(filter((cartData) => { var _a; return Boolean((_a = cartData.value) === null || _a === void 0 ? void 0 : _a.code); }), map((cartData) => { var _a; return (_a = cartData.value) === null || _a === void 0 ? void 0 : _a.code; }), tap((cartId) => {
this.savedCartService.saveCart({
cartId,
saveCartName: savedCartInfo === null || savedCartInfo === void 0 ? void 0 : savedCartInfo.name,
saveCartDescription: savedCartInfo === null || savedCartInfo === void 0 ? void 0 : savedCartInfo.description,
});
this.savedCartService.loadSavedCarts();
}), observeOn(queueScheduler), delayWhen(() => this.savedCartService
.getSaveCartProcessLoading()
.pipe(filter((loading) => !loading))), tap((cartId) => this.multiCartService.addEntries(userId, cartId, products)))));
}
}
NewSavedCartOrderEntriesContext.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: NewSavedCartOrderEntriesContext, deps: [{ token: i1.ActionsSubject }, { token: i2.UserIdService }, { token: i2.MultiCartService }, { token: i3.SavedCartFacade }], target: i0.ɵɵFactoryTarget.Injectable });
NewSavedCartOrderEntriesContext.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: NewSavedCartOrderEntriesContext, providedIn: 'root' });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: NewSavedCartOrderEntriesContext, decorators: [{
type: Injectable,
args: [{
providedIn: 'root',
}]
}], ctorParameters: function () { return [{ type: i1.ActionsSubject }, { type: i2.UserIdService }, { type: i2.MultiCartService }, { type: i3.SavedCartFacade }]; } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmV3LXNhdmVkLWNhcnQtb3JkZXItZW50cmllcy1jb250ZXh0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vZmVhdHVyZS1saWJzL2NhcnQvc2F2ZWQtY2FydC9yb290L3BhZ2VzL3NhdmVkLWNhcnRzLXBhZ2UvbmV3LXNhdmVkLWNhcnQtb3JkZXItZW50cmllcy1jb250ZXh0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFRM0MsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixrQkFBa0IsR0FJbkIsTUFBTSx1QkFBdUIsQ0FBQztBQUMvQixPQUFPLEVBQWMsY0FBYyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2xELE9BQU8sRUFDTCxTQUFTLEVBQ1QsTUFBTSxFQUNOLEdBQUcsRUFDSCxTQUFTLEVBQ1QsU0FBUyxFQUNULElBQUksRUFDSixHQUFHLEdBQ0osTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7QUFNeEIsTUFBTSxPQUFPLCtCQUNYLFNBQVEsdUJBQXVCO0lBSy9CLFlBQ1ksY0FBOEIsRUFDOUIsYUFBNEIsRUFDNUIsZ0JBQWtDLEVBQ2xDLGdCQUFpQztRQUUzQyxLQUFLLENBQUMsY0FBYyxDQUFDLENBQUM7UUFMWixtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDOUIsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFDNUIscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUNsQyxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWlCO1FBTnBDLFNBQUksR0FBRyxrQkFBa0IsQ0FBQyxjQUFjLENBQUM7SUFTbEQsQ0FBQztJQUVELFVBQVUsQ0FDUixRQUF1QixFQUN2QixhQUFxRDtRQUVyRCxPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLGFBQWEsQ0FBQyxDQUFDLElBQUksQ0FDM0MsU0FBUyxDQUFDLENBQUMsTUFBYyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQ3RELElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQ3RCLENBQUM7SUFDSixDQUFDO0lBRVMsR0FBRyxDQUNYLFFBQXVCLEVBQ3ZCLGFBQXFEO1FBRXJELE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxVQUFVLEVBQUUsQ0FBQyxJQUFJLENBQ3pDLFNBQVMsQ0FBQyxDQUFDLE1BQWMsRUFBRSxFQUFFLENBQzNCLElBQUksQ0FBQyxnQkFBZ0I7YUFDbEIsVUFBVSxDQUFDO1lBQ1YsTUFBTTtZQUNOLFNBQVMsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7U0FDN0IsQ0FBQzthQUNELElBQUksQ0FDSCxNQUFNLENBQUMsQ0FBQyxRQUErQyxFQUFFLEVBQUUsV0FDekQsT0FBQSxPQUFPLENBQUMsTUFBQSxRQUFRLENBQUMsS0FBSywwQ0FBRSxJQUFJLENBQUMsQ0FBQSxFQUFBLENBQzlCLEVBQ0QsR0FBRyxDQUNELENBQUMsUUFBK0MsRUFBRSxFQUFFLFdBQ2xELE9BQUEsTUFBQSxRQUFRLENBQUMsS0FBSywwQ0FBRSxJQUFjLENBQUEsRUFBQSxDQUNqQyxFQUNELEdBQUcsQ0FBQyxDQUFDLE1BQWMsRUFBRSxFQUFFO1lBQ3JCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLENBQUM7Z0JBQzdCLE1BQU07Z0JBQ04sWUFBWSxFQUFFLGFBQWEsYUFBYixhQUFhLHVCQUFiLGFBQWEsQ0FBRSxJQUFJO2dCQUNqQyxtQkFBbUIsRUFBRSxhQUFhLGFBQWIsYUFBYSx1QkFBYixhQUFhLENBQUUsV0FBVzthQUNoRCxDQUFDLENBQUM7WUFDSCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDekMsQ0FBQyxDQUFDLEVBQ0YsU0FBUyxDQUFDLGNBQWMsQ0FBQyxFQUN6QixTQUFTLENBQUMsR0FBRyxFQUFFLENBQ2IsSUFBSSxDQUFDLGdCQUFnQjthQUNsQix5QkFBeUIsRUFBRTthQUMzQixJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQ3ZDLEVBQ0QsR0FBRyxDQUFDLENBQUMsTUFBYyxFQUFFLEVBQUUsQ0FDckIsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFVBQVUsQ0FBQyxNQUFNLEVBQUUsTUFBTSxFQUFFLFFBQVEsQ0FBQyxDQUMzRCxDQUNGLENBQ0osQ0FDRixDQUFDO0lBQ0osQ0FBQzs7NEhBaEVVLCtCQUErQjtnSUFBL0IsK0JBQStCLGNBRjlCLE1BQU07MkZBRVAsK0JBQStCO2tCQUgzQyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFjdGlvbnNTdWJqZWN0IH0gZnJvbSAnQG5ncngvc3RvcmUnO1xuaW1wb3J0IHtcbiAgQ2FydCxcbiAgTXVsdGlDYXJ0U2VydmljZSxcbiAgU3RhdGVVdGlscyxcbiAgVXNlcklkU2VydmljZSxcbn0gZnJvbSAnQHNwYXJ0YWN1cy9jb3JlJztcbmltcG9ydCB7XG4gIENhcnRPcmRlckVudHJpZXNDb250ZXh0LFxuICBPcmRlckVudHJpZXNTb3VyY2UsXG4gIEFkZE9yZGVyRW50cmllc0NvbnRleHQsXG4gIFByb2R1Y3REYXRhLFxuICBQcm9kdWN0SW1wb3J0SW5mbyxcbn0gZnJvbSAnQHNwYXJ0YWN1cy9zdG9yZWZyb250JztcbmltcG9ydCB7IE9ic2VydmFibGUsIHF1ZXVlU2NoZWR1bGVyIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQge1xuICBkZWxheVdoZW4sXG4gIGZpbHRlcixcbiAgbWFwLFxuICBvYnNlcnZlT24sXG4gIHN3aXRjaE1hcCxcbiAgdGFrZSxcbiAgdGFwLFxufSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBTYXZlZENhcnRGYWNhZGUgfSBmcm9tICcuLi8uLi9mYWNhZGUvc2F2ZWQtY2FydC5mYWNhZGUnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgTmV3U2F2ZWRDYXJ0T3JkZXJFbnRyaWVzQ29udGV4dFxuICBleHRlbmRzIENhcnRPcmRlckVudHJpZXNDb250ZXh0XG4gIGltcGxlbWVudHMgQWRkT3JkZXJFbnRyaWVzQ29udGV4dFxue1xuICByZWFkb25seSB0eXBlID0gT3JkZXJFbnRyaWVzU291cmNlLk5FV19TQVZFRF9DQVJUO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByb3RlY3RlZCBhY3Rpb25zU3ViamVjdDogQWN0aW9uc1N1YmplY3QsXG4gICAgcHJvdGVjdGVkIHVzZXJJZFNlcnZpY2U6IFVzZXJJZFNlcnZpY2UsXG4gICAgcHJvdGVjdGVkIG11bHRpQ2FydFNlcnZpY2U6IE11bHRpQ2FydFNlcnZpY2UsXG4gICAgcHJvdGVjdGVkIHNhdmVkQ2FydFNlcnZpY2U6IFNhdmVkQ2FydEZhY2FkZVxuICApIHtcbiAgICBzdXBlcihhY3Rpb25zU3ViamVjdCk7XG4gIH1cblxuICBhZGRFbnRyaWVzKFxuICAgIHByb2R1Y3RzOiBQcm9kdWN0RGF0YVtdLFxuICAgIHNhdmVkQ2FydEluZm8/OiB7IG5hbWU6IHN0cmluZzsgZGVzY3JpcHRpb246IHN0cmluZyB9XG4gICk6IE9ic2VydmFibGU8UHJvZHVjdEltcG9ydEluZm8+IHtcbiAgICByZXR1cm4gdGhpcy5hZGQocHJvZHVjdHMsIHNhdmVkQ2FydEluZm8pLnBpcGUoXG4gICAgICBzd2l0Y2hNYXAoKGNhcnRJZDogc3RyaW5nKSA9PiB0aGlzLmdldFJlc3VsdHMoY2FydElkKSksXG4gICAgICB0YWtlKHByb2R1Y3RzLmxlbmd0aClcbiAgICApO1xuICB9XG5cbiAgcHJvdGVjdGVkIGFkZChcbiAgICBwcm9kdWN0czogUHJvZHVjdERhdGFbXSxcbiAgICBzYXZlZENhcnRJbmZvPzogeyBuYW1lOiBzdHJpbmc7IGRlc2NyaXB0aW9uOiBzdHJpbmcgfVxuICApOiBPYnNlcnZhYmxlPHN0cmluZz4ge1xuICAgIHJldHVybiB0aGlzLnVzZXJJZFNlcnZpY2UudGFrZVVzZXJJZCgpLnBpcGUoXG4gICAgICBzd2l0Y2hNYXAoKHVzZXJJZDogc3RyaW5nKSA9PlxuICAgICAgICB0aGlzLm11bHRpQ2FydFNlcnZpY2VcbiAgICAgICAgICAuY3JlYXRlQ2FydCh7XG4gICAgICAgICAgICB1c2VySWQsXG4gICAgICAgICAgICBleHRyYURhdGE6IHsgYWN0aXZlOiBmYWxzZSB9LFxuICAgICAgICAgIH0pXG4gICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICBmaWx0ZXIoKGNhcnREYXRhOiBTdGF0ZVV0aWxzLlByb2Nlc3Nlc0xvYWRlclN0YXRlPENhcnQ+KSA9PlxuICAgICAgICAgICAgICBCb29sZWFuKGNhcnREYXRhLnZhbHVlPy5jb2RlKVxuICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIG1hcChcbiAgICAgICAgICAgICAgKGNhcnREYXRhOiBTdGF0ZVV0aWxzLlByb2Nlc3Nlc0xvYWRlclN0YXRlPENhcnQ+KSA9PlxuICAgICAgICAgICAgICAgIGNhcnREYXRhLnZhbHVlPy5jb2RlIGFzIHN0cmluZ1xuICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIHRhcCgoY2FydElkOiBzdHJpbmcpID0+IHtcbiAgICAgICAgICAgICAgdGhpcy5zYXZlZENhcnRTZXJ2aWNlLnNhdmVDYXJ0KHtcbiAgICAgICAgICAgICAgICBjYXJ0SWQsXG4gICAgICAgICAgICAgICAgc2F2ZUNhcnROYW1lOiBzYXZlZENhcnRJbmZvPy5uYW1lLFxuICAgICAgICAgICAgICAgIHNhdmVDYXJ0RGVzY3JpcHRpb246IHNhdmVkQ2FydEluZm8/LmRlc2NyaXB0aW9uLFxuICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgdGhpcy5zYXZlZENhcnRTZXJ2aWNlLmxvYWRTYXZlZENhcnRzKCk7XG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIG9ic2VydmVPbihxdWV1ZVNjaGVkdWxlciksXG4gICAgICAgICAgICBkZWxheVdoZW4oKCkgPT5cbiAgICAgICAgICAgICAgdGhpcy5zYXZlZENhcnRTZXJ2aWNlXG4gICAgICAgICAgICAgICAgLmdldFNhdmVDYXJ0UHJvY2Vzc0xvYWRpbmcoKVxuICAgICAgICAgICAgICAgIC5waXBlKGZpbHRlcigobG9hZGluZykgPT4gIWxvYWRpbmcpKVxuICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIHRhcCgoY2FydElkOiBzdHJpbmcpID0+XG4gICAgICAgICAgICAgIHRoaXMubXVsdGlDYXJ0U2VydmljZS5hZGRFbnRyaWVzKHVzZXJJZCwgY2FydElkLCBwcm9kdWN0cylcbiAgICAgICAgICAgIClcbiAgICAgICAgICApXG4gICAgICApXG4gICAgKTtcbiAgfVxufVxuIl19