UNPKG

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