UNPKG

@spartacus/cart

Version:

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

57 lines 10 kB
import { ChangeDetectionStrategy, Component, ViewChild, } from '@angular/core'; import { combineLatest, Subscription } from 'rxjs'; import { map, take, tap } from 'rxjs/operators'; import * as i0 from "@angular/core"; import * as i1 from "@spartacus/core"; import * as i2 from "@spartacus/storefront"; import * as i3 from "@angular/common"; import * as i4 from "@angular/router"; export class AddToSavedCartComponent { constructor(activeCartService, authService, routingService, vcr, launchDialogService) { this.activeCartService = activeCartService; this.authService = authService; this.routingService = routingService; this.vcr = vcr; this.launchDialogService = launchDialogService; this.subscription = new Subscription(); this.loggedIn = false; } ngOnInit() { this.cart$ = combineLatest([ this.activeCartService.getActive(), this.authService.isUserLoggedIn(), ]).pipe(tap(([_, loggedIn]) => (this.loggedIn = loggedIn)), map(([activeCart]) => activeCart)); } saveCart(cart) { if (this.loggedIn) { this.openDialog(cart); } else { this.routingService.go({ cxRoute: 'login' }); } } openDialog(cart) { const dialog = this.launchDialogService.openDialog("SAVED_CART" /* SAVED_CART */, this.element, this.vcr, { cart, layoutOption: 'save' }); if (dialog) { this.subscription.add(dialog.pipe(take(1)).subscribe()); } } ngOnDestroy() { var _a; (_a = this.subscription) === null || _a === void 0 ? void 0 : _a.unsubscribe(); } } AddToSavedCartComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: AddToSavedCartComponent, deps: [{ token: i1.ActiveCartService }, { token: i1.AuthService }, { token: i1.RoutingService }, { token: i0.ViewContainerRef }, { token: i2.LaunchDialogService }], target: i0.ɵɵFactoryTarget.Component }); AddToSavedCartComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.0.5", type: AddToSavedCartComponent, selector: "cx-add-to-saved-cart", viewQueries: [{ propertyName: "element", first: true, predicate: ["element"], descendants: true }], ngImport: i0, template: "<ng-container *ngIf=\"cart$ | async as cart\">\n <div class=\"cx-add-to-saved-cart-container\">\n <button\n class=\"link cx-action-link\"\n [routerLink]=\"\n {\n cxRoute: 'savedCarts'\n } | cxUrl\n \"\n cxAutoFocus\n >\n <span>{{ 'addToSavedCart.savedCarts' | cxTranslate }}</span>\n </button>\n <button\n #element\n class=\"link cx-action-link\"\n (click)=\"saveCart(cart)\"\n cxAutoFocus\n >\n <span>{{ 'addToSavedCart.saveCartForLater' | cxTranslate }}</span>\n </button>\n </div>\n</ng-container>\n", directives: [{ type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4.RouterLink, selector: ":not(a):not(area)[routerLink]", inputs: ["routerLink", "queryParams", "fragment", "queryParamsHandling", "preserveFragment", "skipLocationChange", "replaceUrl", "state", "relativeTo"] }], pipes: { "async": i3.AsyncPipe, "cxUrl": i1.UrlPipe, "cxTranslate": i1.TranslatePipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush }); i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: AddToSavedCartComponent, decorators: [{ type: Component, args: [{ selector: 'cx-add-to-saved-cart', templateUrl: './add-to-saved-cart.component.html', changeDetection: ChangeDetectionStrategy.OnPush, }] }], ctorParameters: function () { return [{ type: i1.ActiveCartService }, { type: i1.AuthService }, { type: i1.RoutingService }, { type: i0.ViewContainerRef }, { type: i2.LaunchDialogService }]; }, propDecorators: { element: [{ type: ViewChild, args: ['element'] }] } }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkLXRvLXNhdmVkLWNhcnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vZmVhdHVyZS1saWJzL2NhcnQvc2F2ZWQtY2FydC9jb21wb25lbnRzL2FkZC10by1zYXZlZC1jYXJ0L2FkZC10by1zYXZlZC1jYXJ0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL2ZlYXR1cmUtbGlicy9jYXJ0L3NhdmVkLWNhcnQvY29tcG9uZW50cy9hZGQtdG8tc2F2ZWQtY2FydC9hZGQtdG8tc2F2ZWQtY2FydC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFJVCxTQUFTLEdBRVYsTUFBTSxlQUFlLENBQUM7QUFRdkIsT0FBTyxFQUFFLGFBQWEsRUFBYyxZQUFZLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0QsT0FBTyxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7OztBQU9oRCxNQUFNLE9BQU8sdUJBQXVCO0lBUWxDLFlBQ1ksaUJBQW9DLEVBQ3BDLFdBQXdCLEVBQ3hCLGNBQThCLEVBQzlCLEdBQXFCLEVBQ3JCLG1CQUF3QztRQUp4QyxzQkFBaUIsR0FBakIsaUJBQWlCLENBQW1CO1FBQ3BDLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQ3hCLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUM5QixRQUFHLEdBQUgsR0FBRyxDQUFrQjtRQUNyQix3QkFBbUIsR0FBbkIsbUJBQW1CLENBQXFCO1FBWjFDLGlCQUFZLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUNsQyxhQUFRLEdBQUcsS0FBSyxDQUFDO0lBWXhCLENBQUM7SUFFSixRQUFRO1FBQ04sSUFBSSxDQUFDLEtBQUssR0FBRyxhQUFhLENBQUM7WUFDekIsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFNBQVMsRUFBRTtZQUNsQyxJQUFJLENBQUMsV0FBVyxDQUFDLGNBQWMsRUFBRTtTQUNsQyxDQUFDLENBQUMsSUFBSSxDQUNMLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLFFBQVEsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDLENBQUMsRUFDbEQsR0FBRyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsRUFBRSxFQUFFLENBQUMsVUFBVSxDQUFDLENBQ2xDLENBQUM7SUFDSixDQUFDO0lBRUQsUUFBUSxDQUFDLElBQVU7UUFDakIsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ2pCLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDdkI7YUFBTTtZQUNMLElBQUksQ0FBQyxjQUFjLENBQUMsRUFBRSxDQUFDLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUM7U0FDOUM7SUFDSCxDQUFDO0lBRUQsVUFBVSxDQUFDLElBQVU7UUFDbkIsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUFDLFVBQVUsZ0NBRWhELElBQUksQ0FBQyxPQUFPLEVBQ1osSUFBSSxDQUFDLEdBQUcsRUFDUixFQUFFLElBQUksRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLENBQy9CLENBQUM7UUFFRixJQUFJLE1BQU0sRUFBRTtZQUNWLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQztTQUN6RDtJQUNILENBQUM7SUFFRCxXQUFXOztRQUNULE1BQUEsSUFBSSxDQUFDLFlBQVksMENBQUUsV0FBVyxFQUFFLENBQUM7SUFDbkMsQ0FBQzs7b0hBakRVLHVCQUF1Qjt3R0FBdkIsdUJBQXVCLGdLQ3hCcEMscWxCQXVCQTsyRkRDYSx1QkFBdUI7a0JBTG5DLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLHNCQUFzQjtvQkFDaEMsV0FBVyxFQUFFLG9DQUFvQztvQkFDakQsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07aUJBQ2hEO2dPQUt1QixPQUFPO3NCQUE1QixTQUFTO3VCQUFDLFNBQVMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgVmlld0NoaWxkLFxuICBWaWV3Q29udGFpbmVyUmVmLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIEFjdGl2ZUNhcnRTZXJ2aWNlLFxuICBBdXRoU2VydmljZSxcbiAgQ2FydCxcbiAgUm91dGluZ1NlcnZpY2UsXG59IGZyb20gJ0BzcGFydGFjdXMvY29yZSc7XG5pbXBvcnQgeyBMYXVuY2hEaWFsb2dTZXJ2aWNlLCBMQVVOQ0hfQ0FMTEVSIH0gZnJvbSAnQHNwYXJ0YWN1cy9zdG9yZWZyb250JztcbmltcG9ydCB7IGNvbWJpbmVMYXRlc3QsIE9ic2VydmFibGUsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgbWFwLCB0YWtlLCB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2N4LWFkZC10by1zYXZlZC1jYXJ0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2FkZC10by1zYXZlZC1jYXJ0LmNvbXBvbmVudC5odG1sJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIEFkZFRvU2F2ZWRDYXJ0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICBwcm90ZWN0ZWQgc3Vic2NyaXB0aW9uID0gbmV3IFN1YnNjcmlwdGlvbigpO1xuICBwcm90ZWN0ZWQgbG9nZ2VkSW4gPSBmYWxzZTtcblxuICBAVmlld0NoaWxkKCdlbGVtZW50JykgZWxlbWVudDogRWxlbWVudFJlZjtcblxuICBjYXJ0JDogT2JzZXJ2YWJsZTxDYXJ0PjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcm90ZWN0ZWQgYWN0aXZlQ2FydFNlcnZpY2U6IEFjdGl2ZUNhcnRTZXJ2aWNlLFxuICAgIHByb3RlY3RlZCBhdXRoU2VydmljZTogQXV0aFNlcnZpY2UsXG4gICAgcHJvdGVjdGVkIHJvdXRpbmdTZXJ2aWNlOiBSb3V0aW5nU2VydmljZSxcbiAgICBwcm90ZWN0ZWQgdmNyOiBWaWV3Q29udGFpbmVyUmVmLFxuICAgIHByb3RlY3RlZCBsYXVuY2hEaWFsb2dTZXJ2aWNlOiBMYXVuY2hEaWFsb2dTZXJ2aWNlXG4gICkge31cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmNhcnQkID0gY29tYmluZUxhdGVzdChbXG4gICAgICB0aGlzLmFjdGl2ZUNhcnRTZXJ2aWNlLmdldEFjdGl2ZSgpLFxuICAgICAgdGhpcy5hdXRoU2VydmljZS5pc1VzZXJMb2dnZWRJbigpLFxuICAgIF0pLnBpcGUoXG4gICAgICB0YXAoKFtfLCBsb2dnZWRJbl0pID0+ICh0aGlzLmxvZ2dlZEluID0gbG9nZ2VkSW4pKSxcbiAgICAgIG1hcCgoW2FjdGl2ZUNhcnRdKSA9PiBhY3RpdmVDYXJ0KVxuICAgICk7XG4gIH1cblxuICBzYXZlQ2FydChjYXJ0OiBDYXJ0KTogdm9pZCB7XG4gICAgaWYgKHRoaXMubG9nZ2VkSW4pIHtcbiAgICAgIHRoaXMub3BlbkRpYWxvZyhjYXJ0KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5yb3V0aW5nU2VydmljZS5nbyh7IGN4Um91dGU6ICdsb2dpbicgfSk7XG4gICAgfVxuICB9XG5cbiAgb3BlbkRpYWxvZyhjYXJ0OiBDYXJ0KSB7XG4gICAgY29uc3QgZGlhbG9nID0gdGhpcy5sYXVuY2hEaWFsb2dTZXJ2aWNlLm9wZW5EaWFsb2coXG4gICAgICBMQVVOQ0hfQ0FMTEVSLlNBVkVEX0NBUlQsXG4gICAgICB0aGlzLmVsZW1lbnQsXG4gICAgICB0aGlzLnZjcixcbiAgICAgIHsgY2FydCwgbGF5b3V0T3B0aW9uOiAnc2F2ZScgfVxuICAgICk7XG5cbiAgICBpZiAoZGlhbG9nKSB7XG4gICAgICB0aGlzLnN1YnNjcmlwdGlvbi5hZGQoZGlhbG9nLnBpcGUodGFrZSgxKSkuc3Vic2NyaWJlKCkpO1xuICAgIH1cbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuc3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xuICB9XG59XG4iLCI8bmctY29udGFpbmVyICpuZ0lmPVwiY2FydCQgfCBhc3luYyBhcyBjYXJ0XCI+XG4gIDxkaXYgY2xhc3M9XCJjeC1hZGQtdG8tc2F2ZWQtY2FydC1jb250YWluZXJcIj5cbiAgICA8YnV0dG9uXG4gICAgICBjbGFzcz1cImxpbmsgY3gtYWN0aW9uLWxpbmtcIlxuICAgICAgW3JvdXRlckxpbmtdPVwiXG4gICAgICAgIHtcbiAgICAgICAgICBjeFJvdXRlOiAnc2F2ZWRDYXJ0cydcbiAgICAgICAgfSB8IGN4VXJsXG4gICAgICBcIlxuICAgICAgY3hBdXRvRm9jdXNcbiAgICA+XG4gICAgICA8c3Bhbj57eyAnYWRkVG9TYXZlZENhcnQuc2F2ZWRDYXJ0cycgfCBjeFRyYW5zbGF0ZSB9fTwvc3Bhbj5cbiAgICA8L2J1dHRvbj5cbiAgICA8YnV0dG9uXG4gICAgICAjZWxlbWVudFxuICAgICAgY2xhc3M9XCJsaW5rIGN4LWFjdGlvbi1saW5rXCJcbiAgICAgIChjbGljayk9XCJzYXZlQ2FydChjYXJ0KVwiXG4gICAgICBjeEF1dG9Gb2N1c1xuICAgID5cbiAgICAgIDxzcGFuPnt7ICdhZGRUb1NhdmVkQ2FydC5zYXZlQ2FydEZvckxhdGVyJyB8IGN4VHJhbnNsYXRlIH19PC9zcGFuPlxuICAgIDwvYnV0dG9uPlxuICA8L2Rpdj5cbjwvbmctY29udGFpbmVyPlxuIl19