@spartacus/cart
Version:
`@spartacus/cart` is a package that you can include in your application, which allows you to use various cart features.
62 lines • 11.3 kB
JavaScript
import { ChangeDetectionStrategy, Component, } from '@angular/core';
import { DeleteSavedCartSuccessEvent, } from '@spartacus/cart/saved-cart/root';
import { GlobalMessageType, PromotionLocation, } from '@spartacus/core';
import { Subscription } from 'rxjs';
import { mapTo, switchMap, take, tap } from 'rxjs/operators';
import * as i0 from "@angular/core";
import * as i1 from "../saved-cart-details.service";
import * as i2 from "@spartacus/cart/saved-cart/root";
import * as i3 from "@spartacus/core";
import * as i4 from "@spartacus/storefront";
import * as i5 from "@angular/common";
export class SavedCartDetailsItemsComponent {
constructor(savedCartDetailsService, savedCartService, eventSercvice, globalMessageService, routingService) {
this.savedCartDetailsService = savedCartDetailsService;
this.savedCartService = savedCartService;
this.eventSercvice = eventSercvice;
this.globalMessageService = globalMessageService;
this.routingService = routingService;
this.subscription = new Subscription();
this.CartLocation = PromotionLocation;
this.cartLoaded$ = this.savedCartDetailsService
.getSavedCartId()
.pipe(switchMap((cartId) => this.savedCartService.isStable(cartId)));
this.savedCart$ = this.savedCartDetailsService
.getCartDetails()
.pipe(tap((cart) => {
var _a;
if (((_a = cart === null || cart === void 0 ? void 0 : cart.entries) !== null && _a !== void 0 ? _a : []).length <= 0 && !!(cart === null || cart === void 0 ? void 0 : cart.code)) {
this.savedCartService.deleteSavedCart(cart.code);
}
}));
}
ngOnInit() {
this.subscription.add(this.eventSercvice
.get(DeleteSavedCartSuccessEvent)
.pipe(take(1), mapTo(true))
.subscribe((success) => this.onDeleteComplete(success)));
}
onDeleteComplete(success) {
if (success) {
this.routingService.go({ cxRoute: 'savedCarts' });
this.globalMessageService.add({
key: 'savedCartDialog.deleteCartSuccess',
}, GlobalMessageType.MSG_TYPE_CONFIRMATION);
}
}
ngOnDestroy() {
var _a;
(_a = this.subscription) === null || _a === void 0 ? void 0 : _a.unsubscribe();
}
}
SavedCartDetailsItemsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: SavedCartDetailsItemsComponent, deps: [{ token: i1.SavedCartDetailsService }, { token: i2.SavedCartFacade }, { token: i3.EventService }, { token: i3.GlobalMessageService }, { token: i3.RoutingService }], target: i0.ɵɵFactoryTarget.Component });
SavedCartDetailsItemsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.0.5", type: SavedCartDetailsItemsComponent, selector: "cx-saved-cart-details-items", ngImport: i0, template: "<ng-container *ngIf=\"savedCart$ | async as cart\">\n <ng-container *ngIf=\"cart?.entries?.length > 0; else emptyCartItems\">\n <div class=\"cart-details-wrapper\">\n <cx-cart-item-list\n [cartId]=\"cart.code\"\n [cartIsLoading]=\"!(cartLoaded$ | async)\"\n [items]=\"cart.entries\"\n [promotionLocation]=\"CartLocation.SavedCart\"\n ></cx-cart-item-list>\n </div>\n </ng-container>\n</ng-container>\n<ng-template #emptyCartItems>\n <div class=\"cx-spinner\">\n <cx-spinner></cx-spinner>\n </div>\n</ng-template>\n", components: [{ type: i4.CartItemListComponent, selector: "cx-cart-item-list", inputs: ["readonly", "hasHeader", "options", "cartId", "items", "promotionLocation", "cartIsLoading"] }, { type: i4.SpinnerComponent, selector: "cx-spinner" }], directives: [{ type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "async": i5.AsyncPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: SavedCartDetailsItemsComponent, decorators: [{
type: Component,
args: [{
selector: 'cx-saved-cart-details-items',
templateUrl: './saved-cart-details-items.component.html',
changeDetection: ChangeDetectionStrategy.OnPush,
}]
}], ctorParameters: function () { return [{ type: i1.SavedCartDetailsService }, { type: i2.SavedCartFacade }, { type: i3.EventService }, { type: i3.GlobalMessageService }, { type: i3.RoutingService }]; } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2F2ZWQtY2FydC1kZXRhaWxzLWl0ZW1zLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2ZlYXR1cmUtbGlicy9jYXJ0L3NhdmVkLWNhcnQvY29tcG9uZW50cy9kZXRhaWxzL3NhdmVkLWNhcnQtZGV0YWlscy1pdGVtcy9zYXZlZC1jYXJ0LWRldGFpbHMtaXRlbXMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vZmVhdHVyZS1saWJzL2NhcnQvc2F2ZWQtY2FydC9jb21wb25lbnRzL2RldGFpbHMvc2F2ZWQtY2FydC1kZXRhaWxzLWl0ZW1zL3NhdmVkLWNhcnQtZGV0YWlscy1pdGVtcy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsR0FHVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQ0wsMkJBQTJCLEdBRTVCLE1BQU0saUNBQWlDLENBQUM7QUFDekMsT0FBTyxFQUlMLGlCQUFpQixFQUNqQixpQkFBaUIsR0FFbEIsTUFBTSxpQkFBaUIsQ0FBQztBQUN6QixPQUFPLEVBQWMsWUFBWSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2hELE9BQU8sRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7OztBQVE3RCxNQUFNLE9BQU8sOEJBQThCO0lBbUJ6QyxZQUNZLHVCQUFnRCxFQUNoRCxnQkFBaUMsRUFDakMsYUFBMkIsRUFDM0Isb0JBQTBDLEVBQzFDLGNBQThCO1FBSjlCLDRCQUF1QixHQUF2Qix1QkFBdUIsQ0FBeUI7UUFDaEQscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFpQjtRQUNqQyxrQkFBYSxHQUFiLGFBQWEsQ0FBYztRQUMzQix5QkFBb0IsR0FBcEIsb0JBQW9CLENBQXNCO1FBQzFDLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQXZCbEMsaUJBQVksR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBRTFDLGlCQUFZLEdBQUcsaUJBQWlCLENBQUM7UUFFakMsZ0JBQVcsR0FBd0IsSUFBSSxDQUFDLHVCQUF1QjthQUM1RCxjQUFjLEVBQUU7YUFDaEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFdkUsZUFBVSxHQUFpQyxJQUFJLENBQUMsdUJBQXVCO2FBQ3BFLGNBQWMsRUFBRTthQUNoQixJQUFJLENBQ0gsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7O1lBQ1gsSUFBSSxDQUFDLE1BQUEsSUFBSSxhQUFKLElBQUksdUJBQUosSUFBSSxDQUFFLE9BQU8sbUNBQUksRUFBRSxDQUFDLENBQUMsTUFBTSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQSxJQUFJLGFBQUosSUFBSSx1QkFBSixJQUFJLENBQUUsSUFBSSxDQUFBLEVBQUU7Z0JBQ3JELElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO2FBQ2xEO1FBQ0gsQ0FBQyxDQUFDLENBQ0gsQ0FBQztJQVFELENBQUM7SUFFSixRQUFRO1FBQ04sSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQ25CLElBQUksQ0FBQyxhQUFhO2FBQ2YsR0FBRyxDQUFDLDJCQUEyQixDQUFDO2FBQ2hDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO2FBQzFCLFNBQVMsQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQzFELENBQUM7SUFDSixDQUFDO0lBRUQsZ0JBQWdCLENBQUMsT0FBZ0I7UUFDL0IsSUFBSSxPQUFPLEVBQUU7WUFDWCxJQUFJLENBQUMsY0FBYyxDQUFDLEVBQUUsQ0FBQyxFQUFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsQ0FBQyxDQUFDO1lBQ2xELElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxHQUFHLENBQzNCO2dCQUNFLEdBQUcsRUFBRSxtQ0FBbUM7YUFDekMsRUFDRCxpQkFBaUIsQ0FBQyxxQkFBcUIsQ0FDeEMsQ0FBQztTQUNIO0lBQ0gsQ0FBQztJQUVELFdBQVc7O1FBQ1QsTUFBQSxJQUFJLENBQUMsWUFBWSwwQ0FBRSxXQUFXLEVBQUUsQ0FBQztJQUNuQyxDQUFDOzsySEFsRFUsOEJBQThCOytHQUE5Qiw4QkFBOEIsbUVDM0IzQyx1akJBaUJBOzJGRFVhLDhCQUE4QjtrQkFMMUMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsNkJBQTZCO29CQUN2QyxXQUFXLEVBQUUsMkNBQTJDO29CQUN4RCxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtpQkFDaEQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBEZWxldGVTYXZlZENhcnRTdWNjZXNzRXZlbnQsXG4gIFNhdmVkQ2FydEZhY2FkZSxcbn0gZnJvbSAnQHNwYXJ0YWN1cy9jYXJ0L3NhdmVkLWNhcnQvcm9vdCc7XG5pbXBvcnQge1xuICBDYXJ0LFxuICBFdmVudFNlcnZpY2UsXG4gIEdsb2JhbE1lc3NhZ2VTZXJ2aWNlLFxuICBHbG9iYWxNZXNzYWdlVHlwZSxcbiAgUHJvbW90aW9uTG9jYXRpb24sXG4gIFJvdXRpbmdTZXJ2aWNlLFxufSBmcm9tICdAc3BhcnRhY3VzL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBtYXBUbywgc3dpdGNoTWFwLCB0YWtlLCB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBTYXZlZENhcnREZXRhaWxzU2VydmljZSB9IGZyb20gJy4uL3NhdmVkLWNhcnQtZGV0YWlscy5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnY3gtc2F2ZWQtY2FydC1kZXRhaWxzLWl0ZW1zJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3NhdmVkLWNhcnQtZGV0YWlscy1pdGVtcy5jb21wb25lbnQuaHRtbCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBTYXZlZENhcnREZXRhaWxzSXRlbXNDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIHByaXZhdGUgc3Vic2NyaXB0aW9uID0gbmV3IFN1YnNjcmlwdGlvbigpO1xuXG4gIENhcnRMb2NhdGlvbiA9IFByb21vdGlvbkxvY2F0aW9uO1xuXG4gIGNhcnRMb2FkZWQkOiBPYnNlcnZhYmxlPGJvb2xlYW4+ID0gdGhpcy5zYXZlZENhcnREZXRhaWxzU2VydmljZVxuICAgIC5nZXRTYXZlZENhcnRJZCgpXG4gICAgLnBpcGUoc3dpdGNoTWFwKChjYXJ0SWQpID0+IHRoaXMuc2F2ZWRDYXJ0U2VydmljZS5pc1N0YWJsZShjYXJ0SWQpKSk7XG5cbiAgc2F2ZWRDYXJ0JDogT2JzZXJ2YWJsZTxDYXJ0IHwgdW5kZWZpbmVkPiA9IHRoaXMuc2F2ZWRDYXJ0RGV0YWlsc1NlcnZpY2VcbiAgICAuZ2V0Q2FydERldGFpbHMoKVxuICAgIC5waXBlKFxuICAgICAgdGFwKChjYXJ0KSA9PiB7XG4gICAgICAgIGlmICgoY2FydD8uZW50cmllcyA/PyBbXSkubGVuZ3RoIDw9IDAgJiYgISFjYXJ0Py5jb2RlKSB7XG4gICAgICAgICAgdGhpcy5zYXZlZENhcnRTZXJ2aWNlLmRlbGV0ZVNhdmVkQ2FydChjYXJ0LmNvZGUpO1xuICAgICAgICB9XG4gICAgICB9KVxuICAgICk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJvdGVjdGVkIHNhdmVkQ2FydERldGFpbHNTZXJ2aWNlOiBTYXZlZENhcnREZXRhaWxzU2VydmljZSxcbiAgICBwcm90ZWN0ZWQgc2F2ZWRDYXJ0U2VydmljZTogU2F2ZWRDYXJ0RmFjYWRlLFxuICAgIHByb3RlY3RlZCBldmVudFNlcmN2aWNlOiBFdmVudFNlcnZpY2UsXG4gICAgcHJvdGVjdGVkIGdsb2JhbE1lc3NhZ2VTZXJ2aWNlOiBHbG9iYWxNZXNzYWdlU2VydmljZSxcbiAgICBwcm90ZWN0ZWQgcm91dGluZ1NlcnZpY2U6IFJvdXRpbmdTZXJ2aWNlXG4gICkge31cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbi5hZGQoXG4gICAgICB0aGlzLmV2ZW50U2VyY3ZpY2VcbiAgICAgICAgLmdldChEZWxldGVTYXZlZENhcnRTdWNjZXNzRXZlbnQpXG4gICAgICAgIC5waXBlKHRha2UoMSksIG1hcFRvKHRydWUpKVxuICAgICAgICAuc3Vic2NyaWJlKChzdWNjZXNzKSA9PiB0aGlzLm9uRGVsZXRlQ29tcGxldGUoc3VjY2VzcykpXG4gICAgKTtcbiAgfVxuXG4gIG9uRGVsZXRlQ29tcGxldGUoc3VjY2VzczogYm9vbGVhbik6IHZvaWQge1xuICAgIGlmIChzdWNjZXNzKSB7XG4gICAgICB0aGlzLnJvdXRpbmdTZXJ2aWNlLmdvKHsgY3hSb3V0ZTogJ3NhdmVkQ2FydHMnIH0pO1xuICAgICAgdGhpcy5nbG9iYWxNZXNzYWdlU2VydmljZS5hZGQoXG4gICAgICAgIHtcbiAgICAgICAgICBrZXk6ICdzYXZlZENhcnREaWFsb2cuZGVsZXRlQ2FydFN1Y2Nlc3MnLFxuICAgICAgICB9LFxuICAgICAgICBHbG9iYWxNZXNzYWdlVHlwZS5NU0dfVFlQRV9DT05GSVJNQVRJT05cbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5zdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKCk7XG4gIH1cbn1cbiIsIjxuZy1jb250YWluZXIgKm5nSWY9XCJzYXZlZENhcnQkIHwgYXN5bmMgYXMgY2FydFwiPlxuICA8bmctY29udGFpbmVyICpuZ0lmPVwiY2FydD8uZW50cmllcz8ubGVuZ3RoID4gMDsgZWxzZSBlbXB0eUNhcnRJdGVtc1wiPlxuICAgIDxkaXYgY2xhc3M9XCJjYXJ0LWRldGFpbHMtd3JhcHBlclwiPlxuICAgICAgPGN4LWNhcnQtaXRlbS1saXN0XG4gICAgICAgIFtjYXJ0SWRdPVwiY2FydC5jb2RlXCJcbiAgICAgICAgW2NhcnRJc0xvYWRpbmddPVwiIShjYXJ0TG9hZGVkJCB8IGFzeW5jKVwiXG4gICAgICAgIFtpdGVtc109XCJjYXJ0LmVudHJpZXNcIlxuICAgICAgICBbcHJvbW90aW9uTG9jYXRpb25dPVwiQ2FydExvY2F0aW9uLlNhdmVkQ2FydFwiXG4gICAgICA+PC9jeC1jYXJ0LWl0ZW0tbGlzdD5cbiAgICA8L2Rpdj5cbiAgPC9uZy1jb250YWluZXI+XG48L25nLWNvbnRhaW5lcj5cbjxuZy10ZW1wbGF0ZSAjZW1wdHlDYXJ0SXRlbXM+XG4gIDxkaXYgY2xhc3M9XCJjeC1zcGlubmVyXCI+XG4gICAgPGN4LXNwaW5uZXI+PC9jeC1zcGlubmVyPlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=