UNPKG

@spartacus/storefront

Version:

Spartacus Storefront is a package that you can include in your application, which allows you to add default storefront features.

48 lines 9.84 kB
import { ChangeDetectionStrategy, Component, } from '@angular/core'; import { Subscription } from 'rxjs'; import { filter } from 'rxjs/operators'; import { NavigationCancel, NavigationEnd, } from '@angular/router'; import * as i0 from "@angular/core"; import * as i1 from "@spartacus/core"; import * as i2 from "@angular/router"; import * as i3 from "../cart-shared/order-summary/order-summary.component"; import * as i4 from "../../../shared/components/progress-button/progress-button.component"; import * as i5 from "@angular/common"; export class CartTotalsComponent { constructor(activeCartService, router) { this.activeCartService = activeCartService; this.router = router; this.cartValidationInProgress = false; this.subscription = new Subscription(); } ngOnInit() { var _a; this.cart$ = this.activeCartService.getActive(); this.entries$ = this.activeCartService .getEntries() .pipe(filter((entries) => entries.length > 0)); this.subscription.add((_a = this.router) === null || _a === void 0 ? void 0 : _a.events.subscribe((event) => { if (event instanceof NavigationEnd || event instanceof NavigationCancel) { this.cartValidationInProgress = false; } })); } ngOnDestroy() { this.subscription.unsubscribe(); } disableButtonWhileNavigation() { this.cartValidationInProgress = true; } } CartTotalsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: CartTotalsComponent, deps: [{ token: i1.ActiveCartService }, { token: i2.Router }], target: i0.ɵɵFactoryTarget.Component }); CartTotalsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.0.5", type: CartTotalsComponent, selector: "cx-cart-totals", ngImport: i0, template: "<ng-container *ngIf=\"cart$ | async as cart\">\n <ng-container *ngIf=\"entries$ | async as entries\">\n <cx-order-summary [cart]=\"cart\"></cx-order-summary>\n <ng-container *cxFeatureLevel=\"'!4.2'\">\n <button\n [routerLink]=\"{ cxRoute: 'checkout' } | cxUrl\"\n *ngIf=\"entries.length\"\n class=\"btn btn-primary btn-block\"\n type=\"button\"\n >\n {{ 'cartDetails.proceedToCheckout' | cxTranslate }}\n </button>\n </ng-container>\n\n <ng-container *cxFeatureLevel=\"'4.2'\">\n <cx-progress-button\n *ngIf=\"entries.length\"\n [routerLink]=\"{ cxRoute: 'checkout' } | cxUrl\"\n [loading]=\"cartValidationInProgress\"\n [disabled]=\"cartValidationInProgress\"\n [class]=\"'btn btn-primary btn-block'\"\n (clikEvent)=\"disableButtonWhileNavigation()\"\n >\n {{\n (!cartValidationInProgress ? 'cartDetails.proceedToCheckout' : '')\n | cxTranslate\n }}\n </cx-progress-button>\n </ng-container>\n </ng-container>\n</ng-container>\n", components: [{ type: i3.OrderSummaryComponent, selector: "cx-order-summary", inputs: ["cart"] }, { type: i4.ProgressButtonComponent, selector: "cx-progress-button", inputs: ["ariaLabel", "class", "disabled", "loading"], outputs: ["clikEvent"] }], directives: [{ type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1.FeatureLevelDirective, selector: "[cxFeatureLevel]", inputs: ["cxFeatureLevel"] }, { type: i2.RouterLink, selector: ":not(a):not(area)[routerLink]", inputs: ["routerLink", "queryParams", "fragment", "queryParamsHandling", "preserveFragment", "skipLocationChange", "replaceUrl", "state", "relativeTo"] }], pipes: { "async": i5.AsyncPipe, "cxUrl": i1.UrlPipe, "cxTranslate": i1.TranslatePipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush }); i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: CartTotalsComponent, decorators: [{ type: Component, args: [{ selector: 'cx-cart-totals', templateUrl: './cart-totals.component.html', changeDetection: ChangeDetectionStrategy.OnPush, }] }], ctorParameters: function () { return [{ type: i1.ActiveCartService }, { type: i2.Router }]; } }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FydC10b3RhbHMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc3RvcmVmcm9udGxpYi9jbXMtY29tcG9uZW50cy9jYXJ0L2NhcnQtdG90YWxzL2NhcnQtdG90YWxzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3N0b3JlZnJvbnRsaWIvY21zLWNvbXBvbmVudHMvY2FydC9jYXJ0LXRvdGFscy9jYXJ0LXRvdGFscy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsR0FHVixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQWMsWUFBWSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2hELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QyxPQUFPLEVBRUwsZ0JBQWdCLEVBQ2hCLGFBQWEsR0FFZCxNQUFNLGlCQUFpQixDQUFDOzs7Ozs7O0FBT3pCLE1BQU0sT0FBTyxtQkFBbUI7SUFZOUIsWUFDWSxpQkFBb0MsRUFDcEMsTUFBZTtRQURmLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7UUFDcEMsV0FBTSxHQUFOLE1BQU0sQ0FBUztRQVgzQiw2QkFBd0IsR0FBRyxLQUFLLENBQUM7UUFFdkIsaUJBQVksR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO0lBVXpDLENBQUM7SUFFSixRQUFROztRQUNOLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQ2hELElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLGlCQUFpQjthQUNuQyxVQUFVLEVBQUU7YUFDWixJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFakQsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQ25CLE1BQUEsSUFBSSxDQUFDLE1BQU0sMENBQUUsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEtBQVksRUFBRSxFQUFFO1lBQzdDLElBQ0UsS0FBSyxZQUFZLGFBQWE7Z0JBQzlCLEtBQUssWUFBWSxnQkFBZ0IsRUFDakM7Z0JBQ0EsSUFBSSxDQUFDLHdCQUF3QixHQUFHLEtBQUssQ0FBQzthQUN2QztRQUNILENBQUMsQ0FBQyxDQUNILENBQUM7SUFDSixDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDbEMsQ0FBQztJQUVELDRCQUE0QjtRQUMxQixJQUFJLENBQUMsd0JBQXdCLEdBQUcsSUFBSSxDQUFDO0lBQ3ZDLENBQUM7O2dIQXpDVSxtQkFBbUI7b0dBQW5CLG1CQUFtQixzRENyQmhDLGtrQ0ErQkE7MkZEVmEsbUJBQW1CO2tCQUwvQixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxnQkFBZ0I7b0JBQzFCLFdBQVcsRUFBRSw4QkFBOEI7b0JBQzNDLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO2lCQUNoRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIE9uSW5pdCxcbiAgT25EZXN0cm95LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFjdGl2ZUNhcnRTZXJ2aWNlLCBDYXJ0LCBPcmRlckVudHJ5IH0gZnJvbSAnQHNwYXJ0YWN1cy9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZmlsdGVyIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtcbiAgRXZlbnQsXG4gIE5hdmlnYXRpb25DYW5jZWwsXG4gIE5hdmlnYXRpb25FbmQsXG4gIFJvdXRlcixcbn0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnY3gtY2FydC10b3RhbHMnLFxuICB0ZW1wbGF0ZVVybDogJy4vY2FydC10b3RhbHMuY29tcG9uZW50Lmh0bWwnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgQ2FydFRvdGFsc0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgY2FydCQ6IE9ic2VydmFibGU8Q2FydD47XG4gIGVudHJpZXMkOiBPYnNlcnZhYmxlPE9yZGVyRW50cnlbXT47XG4gIGNhcnRWYWxpZGF0aW9uSW5Qcm9ncmVzcyA9IGZhbHNlO1xuXG4gIHByb3RlY3RlZCBzdWJzY3JpcHRpb24gPSBuZXcgU3Vic2NyaXB0aW9uKCk7XG5cbiAgLyoqXG4gICAqIEBkZXByZWNhdGVkIHNpbmNlIDQuMlxuICAgKi9cbiAgY29uc3RydWN0b3IoYWN0aXZlQ2FydFNlcnZpY2U6IEFjdGl2ZUNhcnRTZXJ2aWNlKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcm90ZWN0ZWQgYWN0aXZlQ2FydFNlcnZpY2U6IEFjdGl2ZUNhcnRTZXJ2aWNlLFxuICAgIHByb3RlY3RlZCByb3V0ZXI/OiBSb3V0ZXJcbiAgKSB7fVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMuY2FydCQgPSB0aGlzLmFjdGl2ZUNhcnRTZXJ2aWNlLmdldEFjdGl2ZSgpO1xuICAgIHRoaXMuZW50cmllcyQgPSB0aGlzLmFjdGl2ZUNhcnRTZXJ2aWNlXG4gICAgICAuZ2V0RW50cmllcygpXG4gICAgICAucGlwZShmaWx0ZXIoKGVudHJpZXMpID0+IGVudHJpZXMubGVuZ3RoID4gMCkpO1xuXG4gICAgdGhpcy5zdWJzY3JpcHRpb24uYWRkKFxuICAgICAgdGhpcy5yb3V0ZXI/LmV2ZW50cy5zdWJzY3JpYmUoKGV2ZW50OiBFdmVudCkgPT4ge1xuICAgICAgICBpZiAoXG4gICAgICAgICAgZXZlbnQgaW5zdGFuY2VvZiBOYXZpZ2F0aW9uRW5kIHx8XG4gICAgICAgICAgZXZlbnQgaW5zdGFuY2VvZiBOYXZpZ2F0aW9uQ2FuY2VsXG4gICAgICAgICkge1xuICAgICAgICAgIHRoaXMuY2FydFZhbGlkYXRpb25JblByb2dyZXNzID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMuc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBkaXNhYmxlQnV0dG9uV2hpbGVOYXZpZ2F0aW9uKCk6IHZvaWQge1xuICAgIHRoaXMuY2FydFZhbGlkYXRpb25JblByb2dyZXNzID0gdHJ1ZTtcbiAgfVxufVxuIiwiPG5nLWNvbnRhaW5lciAqbmdJZj1cImNhcnQkIHwgYXN5bmMgYXMgY2FydFwiPlxuICA8bmctY29udGFpbmVyICpuZ0lmPVwiZW50cmllcyQgfCBhc3luYyBhcyBlbnRyaWVzXCI+XG4gICAgPGN4LW9yZGVyLXN1bW1hcnkgW2NhcnRdPVwiY2FydFwiPjwvY3gtb3JkZXItc3VtbWFyeT5cbiAgICA8bmctY29udGFpbmVyICpjeEZlYXR1cmVMZXZlbD1cIichNC4yJ1wiPlxuICAgICAgPGJ1dHRvblxuICAgICAgICBbcm91dGVyTGlua109XCJ7IGN4Um91dGU6ICdjaGVja291dCcgfSB8IGN4VXJsXCJcbiAgICAgICAgKm5nSWY9XCJlbnRyaWVzLmxlbmd0aFwiXG4gICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5IGJ0bi1ibG9ja1wiXG4gICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgPlxuICAgICAgICB7eyAnY2FydERldGFpbHMucHJvY2VlZFRvQ2hlY2tvdXQnIHwgY3hUcmFuc2xhdGUgfX1cbiAgICAgIDwvYnV0dG9uPlxuICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgPG5nLWNvbnRhaW5lciAqY3hGZWF0dXJlTGV2ZWw9XCInNC4yJ1wiPlxuICAgICAgPGN4LXByb2dyZXNzLWJ1dHRvblxuICAgICAgICAqbmdJZj1cImVudHJpZXMubGVuZ3RoXCJcbiAgICAgICAgW3JvdXRlckxpbmtdPVwieyBjeFJvdXRlOiAnY2hlY2tvdXQnIH0gfCBjeFVybFwiXG4gICAgICAgIFtsb2FkaW5nXT1cImNhcnRWYWxpZGF0aW9uSW5Qcm9ncmVzc1wiXG4gICAgICAgIFtkaXNhYmxlZF09XCJjYXJ0VmFsaWRhdGlvbkluUHJvZ3Jlc3NcIlxuICAgICAgICBbY2xhc3NdPVwiJ2J0biBidG4tcHJpbWFyeSBidG4tYmxvY2snXCJcbiAgICAgICAgKGNsaWtFdmVudCk9XCJkaXNhYmxlQnV0dG9uV2hpbGVOYXZpZ2F0aW9uKClcIlxuICAgICAgPlxuICAgICAgICB7e1xuICAgICAgICAgICghY2FydFZhbGlkYXRpb25JblByb2dyZXNzID8gJ2NhcnREZXRhaWxzLnByb2NlZWRUb0NoZWNrb3V0JyA6ICcnKVxuICAgICAgICAgICAgfCBjeFRyYW5zbGF0ZVxuICAgICAgICB9fVxuICAgICAgPC9jeC1wcm9ncmVzcy1idXR0b24+XG4gICAgPC9uZy1jb250YWluZXI+XG4gIDwvbmctY29udGFpbmVyPlxuPC9uZy1jb250YWluZXI+XG4iXX0=