@spartacus/storefront
Version:
Spartacus Storefront is a package that you can include in your application, which allows you to add default storefront features.
44 lines • 9.23 kB
JavaScript
import { ChangeDetectionStrategy, Component } from '@angular/core';
import { map } from 'rxjs/operators';
import { CartValidationStatusCode } from '@spartacus/core';
import { ICON_TYPE } from '../../../misc/icon/index';
import * as i0 from "@angular/core";
import * as i1 from "../cart-validation-state.service";
import * as i2 from "../../../misc/icon/icon.component";
import * as i3 from "@angular/common";
import * as i4 from "@angular/router";
import * as i5 from "@spartacus/core";
export class CartValidationWarningsComponent {
constructor(cartValidationStateService) {
this.cartValidationStateService = cartValidationStateService;
this.iconTypes = ICON_TYPE;
this.visibleWarnings = {};
this.cartModifications$ = this.cartValidationStateService.cartValidationResult$.pipe(map((modificationList) => {
const result = modificationList.filter((modification) => modification.statusCode === CartValidationStatusCode.NO_STOCK);
result.forEach((modification) => {
var _a, _b;
if ((_b = (_a = modification.entry) === null || _a === void 0 ? void 0 : _a.product) === null || _b === void 0 ? void 0 : _b.code) {
this.visibleWarnings[modification.entry.product.code] = true;
}
});
return result;
}));
}
removeMessage(cartModification) {
var _a, _b;
if ((_b = (_a = cartModification.entry) === null || _a === void 0 ? void 0 : _a.product) === null || _b === void 0 ? void 0 : _b.code) {
this.visibleWarnings[cartModification.entry.product.code] = false;
}
}
}
CartValidationWarningsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: CartValidationWarningsComponent, deps: [{ token: i1.CartValidationStateService }], target: i0.ɵɵFactoryTarget.Component });
CartValidationWarningsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.0.5", type: CartValidationWarningsComponent, selector: "cx-cart-validation-warnings", ngImport: i0, template: "<ng-container *ngFor=\"let cartModification of cartModifications$ | async\">\n <div\n class=\"alert alert-danger\"\n *ngIf=\"visibleWarnings[cartModification.entry.product.code]\"\n >\n <span class=\"alert-icon\">\n <cx-icon [type]=\"iconTypes.ERROR\"></cx-icon>\n </span>\n <span>\n <a\n [routerLink]=\"\n { cxRoute: 'product', params: cartModification.entry.product } | cxUrl\n \"\n >\n {{ cartModification.entry.product.name }}\n </a>\n {{ 'validation.productOutOfStock' | cxTranslate }}\n </span>\n\n <button\n class=\"close\"\n type=\"button\"\n (click)=\"removeMessage(cartModification)\"\n >\n <cx-icon [type]=\"iconTypes.CLOSE\"></cx-icon>\n </button>\n </div>\n</ng-container>\n", components: [{ type: i2.IconComponent, selector: "cx-icon,[cxIcon]", inputs: ["cxIcon", "type"] }], directives: [{ type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4.RouterLinkWithHref, selector: "a[routerLink],area[routerLink]", inputs: ["routerLink", "target", "queryParams", "fragment", "queryParamsHandling", "preserveFragment", "skipLocationChange", "replaceUrl", "state", "relativeTo"] }], pipes: { "async": i3.AsyncPipe, "cxUrl": i5.UrlPipe, "cxTranslate": i5.TranslatePipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: CartValidationWarningsComponent, decorators: [{
type: Component,
args: [{
selector: 'cx-cart-validation-warnings',
templateUrl: './cart-validation-warnings.component.html',
changeDetection: ChangeDetectionStrategy.OnPush,
}]
}], ctorParameters: function () { return [{ type: i1.CartValidationStateService }]; } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FydC12YWxpZGF0aW9uLXdhcm5pbmdzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3N0b3JlZnJvbnRsaWIvY21zLWNvbXBvbmVudHMvY2FydC92YWxpZGF0aW9uL2NhcnQtd2FybmluZ3MvY2FydC12YWxpZGF0aW9uLXdhcm5pbmdzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3N0b3JlZnJvbnRsaWIvY21zLWNvbXBvbmVudHMvY2FydC92YWxpZGF0aW9uL2NhcnQtd2FybmluZ3MvY2FydC12YWxpZGF0aW9uLXdhcm5pbmdzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkUsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JDLE9BQU8sRUFBb0Isd0JBQXdCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUU3RSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7Ozs7Ozs7QUFPckQsTUFBTSxPQUFPLCtCQUErQjtJQXFCMUMsWUFDWSwwQkFBc0Q7UUFBdEQsK0JBQTBCLEdBQTFCLDBCQUEwQixDQUE0QjtRQXJCbEUsY0FBUyxHQUFHLFNBQVMsQ0FBQztRQUN0QixvQkFBZSxHQUE0QixFQUFFLENBQUM7UUFFOUMsdUJBQWtCLEdBQ2hCLElBQUksQ0FBQywwQkFBMEIsQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLENBQ3hELEdBQUcsQ0FBQyxDQUFDLGdCQUFnQixFQUFFLEVBQUU7WUFDdkIsTUFBTSxNQUFNLEdBQUcsZ0JBQWdCLENBQUMsTUFBTSxDQUNwQyxDQUFDLFlBQVksRUFBRSxFQUFFLENBQ2YsWUFBWSxDQUFDLFVBQVUsS0FBSyx3QkFBd0IsQ0FBQyxRQUFRLENBQ2hFLENBQUM7WUFFRixNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsWUFBWSxFQUFFLEVBQUU7O2dCQUM5QixJQUFJLE1BQUEsTUFBQSxZQUFZLENBQUMsS0FBSywwQ0FBRSxPQUFPLDBDQUFFLElBQUksRUFBRTtvQkFDckMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUM7aUJBQzlEO1lBQ0gsQ0FBQyxDQUFDLENBQUM7WUFDSCxPQUFPLE1BQU0sQ0FBQztRQUNoQixDQUFDLENBQUMsQ0FDSCxDQUFDO0lBSUQsQ0FBQztJQUVKLGFBQWEsQ0FBQyxnQkFBa0M7O1FBQzlDLElBQUksTUFBQSxNQUFBLGdCQUFnQixDQUFDLEtBQUssMENBQUUsT0FBTywwQ0FBRSxJQUFJLEVBQUU7WUFDekMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLEtBQUssQ0FBQztTQUNuRTtJQUNILENBQUM7OzRIQTdCVSwrQkFBK0I7Z0hBQS9CLCtCQUErQixtRUNYNUMsMHhCQTRCQTsyRkRqQmEsK0JBQStCO2tCQUwzQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSw2QkFBNkI7b0JBQ3ZDLFdBQVcsRUFBRSwyQ0FBMkM7b0JBQ3hELGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO2lCQUNoRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IENhcnRNb2RpZmljYXRpb24sIENhcnRWYWxpZGF0aW9uU3RhdHVzQ29kZSB9IGZyb20gJ0BzcGFydGFjdXMvY29yZSc7XG5pbXBvcnQgeyBDYXJ0VmFsaWRhdGlvblN0YXRlU2VydmljZSB9IGZyb20gJy4uL2NhcnQtdmFsaWRhdGlvbi1zdGF0ZS5zZXJ2aWNlJztcbmltcG9ydCB7IElDT05fVFlQRSB9IGZyb20gJy4uLy4uLy4uL21pc2MvaWNvbi9pbmRleCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2N4LWNhcnQtdmFsaWRhdGlvbi13YXJuaW5ncycsXG4gIHRlbXBsYXRlVXJsOiAnLi9jYXJ0LXZhbGlkYXRpb24td2FybmluZ3MuY29tcG9uZW50Lmh0bWwnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgQ2FydFZhbGlkYXRpb25XYXJuaW5nc0NvbXBvbmVudCB7XG4gIGljb25UeXBlcyA9IElDT05fVFlQRTtcbiAgdmlzaWJsZVdhcm5pbmdzOiBSZWNvcmQ8c3RyaW5nLCBib29sZWFuPiA9IHt9O1xuXG4gIGNhcnRNb2RpZmljYXRpb25zJCA9XG4gICAgdGhpcy5jYXJ0VmFsaWRhdGlvblN0YXRlU2VydmljZS5jYXJ0VmFsaWRhdGlvblJlc3VsdCQucGlwZShcbiAgICAgIG1hcCgobW9kaWZpY2F0aW9uTGlzdCkgPT4ge1xuICAgICAgICBjb25zdCByZXN1bHQgPSBtb2RpZmljYXRpb25MaXN0LmZpbHRlcihcbiAgICAgICAgICAobW9kaWZpY2F0aW9uKSA9PlxuICAgICAgICAgICAgbW9kaWZpY2F0aW9uLnN0YXR1c0NvZGUgPT09IENhcnRWYWxpZGF0aW9uU3RhdHVzQ29kZS5OT19TVE9DS1xuICAgICAgICApO1xuXG4gICAgICAgIHJlc3VsdC5mb3JFYWNoKChtb2RpZmljYXRpb24pID0+IHtcbiAgICAgICAgICBpZiAobW9kaWZpY2F0aW9uLmVudHJ5Py5wcm9kdWN0Py5jb2RlKSB7XG4gICAgICAgICAgICB0aGlzLnZpc2libGVXYXJuaW5nc1ttb2RpZmljYXRpb24uZW50cnkucHJvZHVjdC5jb2RlXSA9IHRydWU7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgIH0pXG4gICAgKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcm90ZWN0ZWQgY2FydFZhbGlkYXRpb25TdGF0ZVNlcnZpY2U6IENhcnRWYWxpZGF0aW9uU3RhdGVTZXJ2aWNlXG4gICkge31cblxuICByZW1vdmVNZXNzYWdlKGNhcnRNb2RpZmljYXRpb246IENhcnRNb2RpZmljYXRpb24pIHtcbiAgICBpZiAoY2FydE1vZGlmaWNhdGlvbi5lbnRyeT8ucHJvZHVjdD8uY29kZSkge1xuICAgICAgdGhpcy52aXNpYmxlV2FybmluZ3NbY2FydE1vZGlmaWNhdGlvbi5lbnRyeS5wcm9kdWN0LmNvZGVdID0gZmFsc2U7XG4gICAgfVxuICB9XG59XG4iLCI8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBjYXJ0TW9kaWZpY2F0aW9uIG9mIGNhcnRNb2RpZmljYXRpb25zJCB8IGFzeW5jXCI+XG4gIDxkaXZcbiAgICBjbGFzcz1cImFsZXJ0IGFsZXJ0LWRhbmdlclwiXG4gICAgKm5nSWY9XCJ2aXNpYmxlV2FybmluZ3NbY2FydE1vZGlmaWNhdGlvbi5lbnRyeS5wcm9kdWN0LmNvZGVdXCJcbiAgPlxuICAgIDxzcGFuIGNsYXNzPVwiYWxlcnQtaWNvblwiPlxuICAgICAgPGN4LWljb24gW3R5cGVdPVwiaWNvblR5cGVzLkVSUk9SXCI+PC9jeC1pY29uPlxuICAgIDwvc3Bhbj5cbiAgICA8c3Bhbj5cbiAgICAgIDxhXG4gICAgICAgIFtyb3V0ZXJMaW5rXT1cIlxuICAgICAgICAgIHsgY3hSb3V0ZTogJ3Byb2R1Y3QnLCBwYXJhbXM6IGNhcnRNb2RpZmljYXRpb24uZW50cnkucHJvZHVjdCB9IHwgY3hVcmxcbiAgICAgICAgXCJcbiAgICAgID5cbiAgICAgICAge3sgY2FydE1vZGlmaWNhdGlvbi5lbnRyeS5wcm9kdWN0Lm5hbWUgfX1cbiAgICAgIDwvYT5cbiAgICAgIHt7ICd2YWxpZGF0aW9uLnByb2R1Y3RPdXRPZlN0b2NrJyB8IGN4VHJhbnNsYXRlIH19XG4gICAgPC9zcGFuPlxuXG4gICAgPGJ1dHRvblxuICAgICAgY2xhc3M9XCJjbG9zZVwiXG4gICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgIChjbGljayk9XCJyZW1vdmVNZXNzYWdlKGNhcnRNb2RpZmljYXRpb24pXCJcbiAgICA+XG4gICAgICA8Y3gtaWNvbiBbdHlwZV09XCJpY29uVHlwZXMuQ0xPU0VcIj48L2N4LWljb24+XG4gICAgPC9idXR0b24+XG4gIDwvZGl2PlxuPC9uZy1jb250YWluZXI+XG4iXX0=