@spartacus/storefront
Version:
Spartacus Storefront is a package that you can include in your application, which allows you to add default storefront features.
40 lines • 8.36 kB
JavaScript
import { Component, Input, ChangeDetectionStrategy } from '@angular/core';
import { ICON_TYPE } from '../../../../cms-components/misc/icon/icon.model';
import * as i0 from "@angular/core";
import * as i1 from "@spartacus/core";
import * as i2 from "../../../misc/icon/icon.component";
import * as i3 from "@angular/common";
export class AppliedCouponsComponent {
constructor(cartVoucherService) {
this.cartVoucherService = cartVoucherService;
this.cartIsLoading = false;
this.isReadOnly = false;
this.iconTypes = ICON_TYPE;
}
get sortedVouchers() {
this.vouchers = this.vouchers || [];
return this.vouchers.slice().sort((a, b) => {
return a.code.localeCompare(b.code);
});
}
removeVoucher(voucherId) {
this.cartVoucherService.removeVoucher(voucherId);
}
}
AppliedCouponsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: AppliedCouponsComponent, deps: [{ token: i1.CartVoucherService }], target: i0.ɵɵFactoryTarget.Component });
AppliedCouponsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.0.5", type: AppliedCouponsComponent, selector: "cx-applied-coupons", inputs: { vouchers: "vouchers", cartIsLoading: "cartIsLoading", isReadOnly: "isReadOnly" }, ngImport: i0, template: "<div *ngIf=\"isReadOnly; else editableCoupons\">\n <div *ngIf=\"sortedVouchers.length > 0\">\n <div class=\"cx-applied-coupon-title\">\n {{ 'voucher.vouchersApplied' | cxTranslate }}\n </div>\n </div>\n <div\n *ngFor=\"let voucher of sortedVouchers\"\n class=\"coupon-summary cx-coupon-card textonly\"\n role=\"filter\"\n >\n <span class=\"cx-applied-coupon-code\">{{ voucher.voucherCode }}</span>\n </div>\n</div>\n\n<ng-template #editableCoupons>\n <div class=\"row\">\n <div\n *ngFor=\"let voucher of sortedVouchers\"\n class=\"col-sm-12 col-md-6 col-lg-12 cx-coupon-card-grid\"\n role=\"filter\"\n >\n <div class=\"cx-coupon-apply cx-coupon-card cx-coupon-list-wrap\">\n <span class=\"cx-cart-coupon-code\">{{ voucher.voucherCode }}</span>\n <button\n type=\"button\"\n class=\"close\"\n [attr.aria-label]=\"'common.close' | cxTranslate\"\n (click)=\"removeVoucher(voucher.voucherCode)\"\n [disabled]=\"cartIsLoading\"\n [class.disabled]=\"cartIsLoading\"\n >\n <span aria-hidden=\"true\">\n <cx-icon [type]=\"iconTypes.CLOSE\"></cx-icon>\n </span>\n </button>\n </div>\n </div>\n </div>\n</ng-template>\n", components: [{ type: i2.IconComponent, selector: "cx-icon,[cxIcon]", inputs: ["cxIcon", "type"] }], directives: [{ type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], pipes: { "cxTranslate": i1.TranslatePipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: AppliedCouponsComponent, decorators: [{
type: Component,
args: [{
selector: 'cx-applied-coupons',
templateUrl: './applied-coupons.component.html',
changeDetection: ChangeDetectionStrategy.OnPush,
}]
}], ctorParameters: function () { return [{ type: i1.CartVoucherService }]; }, propDecorators: { vouchers: [{
type: Input
}], cartIsLoading: [{
type: Input
}], isReadOnly: [{
type: Input
}] } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwbGllZC1jb3Vwb25zLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3N0b3JlZnJvbnRsaWIvY21zLWNvbXBvbmVudHMvY2FydC9jYXJ0LWNvdXBvbi9hcHBsaWVkLWNvdXBvbnMvYXBwbGllZC1jb3Vwb25zLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3N0b3JlZnJvbnRsaWIvY21zLWNvbXBvbmVudHMvY2FydC9jYXJ0LWNvdXBvbi9hcHBsaWVkLWNvdXBvbnMvYXBwbGllZC1jb3Vwb25zLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxpREFBaUQsQ0FBQzs7Ozs7QUFPNUUsTUFBTSxPQUFPLHVCQUF1QjtJQVVsQyxZQUFzQixrQkFBc0M7UUFBdEMsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFvQjtRQU41RCxrQkFBYSxHQUFHLEtBQUssQ0FBQztRQUV0QixlQUFVLEdBQUcsS0FBSyxDQUFDO1FBRW5CLGNBQVMsR0FBRyxTQUFTLENBQUM7SUFFeUMsQ0FBQztJQUVoRSxJQUFXLGNBQWM7UUFDdkIsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsUUFBUSxJQUFJLEVBQUUsQ0FBQztRQUNwQyxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQ3pDLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3RDLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELGFBQWEsQ0FBQyxTQUFpQjtRQUM3QixJQUFJLENBQUMsa0JBQWtCLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ25ELENBQUM7O29IQXJCVSx1QkFBdUI7d0dBQXZCLHVCQUF1QixzSkNUcEMsc3dDQXdDQTsyRkQvQmEsdUJBQXVCO2tCQUxuQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxvQkFBb0I7b0JBQzlCLFdBQVcsRUFBRSxrQ0FBa0M7b0JBQy9DLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO2lCQUNoRDt5R0FHQyxRQUFRO3NCQURQLEtBQUs7Z0JBR04sYUFBYTtzQkFEWixLQUFLO2dCQUdOLFVBQVU7c0JBRFQsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIENoYW5nZURldGVjdGlvblN0cmF0ZWd5IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBWb3VjaGVyLCBDYXJ0Vm91Y2hlclNlcnZpY2UgfSBmcm9tICdAc3BhcnRhY3VzL2NvcmUnO1xuaW1wb3J0IHsgSUNPTl9UWVBFIH0gZnJvbSAnLi4vLi4vLi4vLi4vY21zLWNvbXBvbmVudHMvbWlzYy9pY29uL2ljb24ubW9kZWwnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjeC1hcHBsaWVkLWNvdXBvbnMnLFxuICB0ZW1wbGF0ZVVybDogJy4vYXBwbGllZC1jb3Vwb25zLmNvbXBvbmVudC5odG1sJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIEFwcGxpZWRDb3Vwb25zQ29tcG9uZW50IHtcbiAgQElucHV0KClcbiAgdm91Y2hlcnM6IFZvdWNoZXJbXTtcbiAgQElucHV0KClcbiAgY2FydElzTG9hZGluZyA9IGZhbHNlO1xuICBASW5wdXQoKVxuICBpc1JlYWRPbmx5ID0gZmFsc2U7XG5cbiAgaWNvblR5cGVzID0gSUNPTl9UWVBFO1xuXG4gIGNvbnN0cnVjdG9yKHByb3RlY3RlZCBjYXJ0Vm91Y2hlclNlcnZpY2U6IENhcnRWb3VjaGVyU2VydmljZSkge31cblxuICBwdWJsaWMgZ2V0IHNvcnRlZFZvdWNoZXJzKCk6IFZvdWNoZXJbXSB7XG4gICAgdGhpcy52b3VjaGVycyA9IHRoaXMudm91Y2hlcnMgfHwgW107XG4gICAgcmV0dXJuIHRoaXMudm91Y2hlcnMuc2xpY2UoKS5zb3J0KChhLCBiKSA9PiB7XG4gICAgICByZXR1cm4gYS5jb2RlLmxvY2FsZUNvbXBhcmUoYi5jb2RlKTtcbiAgICB9KTtcbiAgfVxuXG4gIHJlbW92ZVZvdWNoZXIodm91Y2hlcklkOiBzdHJpbmcpIHtcbiAgICB0aGlzLmNhcnRWb3VjaGVyU2VydmljZS5yZW1vdmVWb3VjaGVyKHZvdWNoZXJJZCk7XG4gIH1cbn1cbiIsIjxkaXYgKm5nSWY9XCJpc1JlYWRPbmx5OyBlbHNlIGVkaXRhYmxlQ291cG9uc1wiPlxuICA8ZGl2ICpuZ0lmPVwic29ydGVkVm91Y2hlcnMubGVuZ3RoID4gMFwiPlxuICAgIDxkaXYgY2xhc3M9XCJjeC1hcHBsaWVkLWNvdXBvbi10aXRsZVwiPlxuICAgICAge3sgJ3ZvdWNoZXIudm91Y2hlcnNBcHBsaWVkJyB8IGN4VHJhbnNsYXRlIH19XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuICA8ZGl2XG4gICAgKm5nRm9yPVwibGV0IHZvdWNoZXIgb2Ygc29ydGVkVm91Y2hlcnNcIlxuICAgIGNsYXNzPVwiY291cG9uLXN1bW1hcnkgY3gtY291cG9uLWNhcmQgdGV4dG9ubHlcIlxuICAgIHJvbGU9XCJmaWx0ZXJcIlxuICA+XG4gICAgPHNwYW4gY2xhc3M9XCJjeC1hcHBsaWVkLWNvdXBvbi1jb2RlXCI+e3sgdm91Y2hlci52b3VjaGVyQ29kZSB9fTwvc3Bhbj5cbiAgPC9kaXY+XG48L2Rpdj5cblxuPG5nLXRlbXBsYXRlICNlZGl0YWJsZUNvdXBvbnM+XG4gIDxkaXYgY2xhc3M9XCJyb3dcIj5cbiAgICA8ZGl2XG4gICAgICAqbmdGb3I9XCJsZXQgdm91Y2hlciBvZiBzb3J0ZWRWb3VjaGVyc1wiXG4gICAgICBjbGFzcz1cImNvbC1zbS0xMiBjb2wtbWQtNiBjb2wtbGctMTIgY3gtY291cG9uLWNhcmQtZ3JpZFwiXG4gICAgICByb2xlPVwiZmlsdGVyXCJcbiAgICA+XG4gICAgICA8ZGl2IGNsYXNzPVwiY3gtY291cG9uLWFwcGx5IGN4LWNvdXBvbi1jYXJkIGN4LWNvdXBvbi1saXN0LXdyYXBcIj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJjeC1jYXJ0LWNvdXBvbi1jb2RlXCI+e3sgdm91Y2hlci52b3VjaGVyQ29kZSB9fTwvc3Bhbj5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgIGNsYXNzPVwiY2xvc2VcIlxuICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiJ2NvbW1vbi5jbG9zZScgfCBjeFRyYW5zbGF0ZVwiXG4gICAgICAgICAgKGNsaWNrKT1cInJlbW92ZVZvdWNoZXIodm91Y2hlci52b3VjaGVyQ29kZSlcIlxuICAgICAgICAgIFtkaXNhYmxlZF09XCJjYXJ0SXNMb2FkaW5nXCJcbiAgICAgICAgICBbY2xhc3MuZGlzYWJsZWRdPVwiY2FydElzTG9hZGluZ1wiXG4gICAgICAgID5cbiAgICAgICAgICA8c3BhbiBhcmlhLWhpZGRlbj1cInRydWVcIj5cbiAgICAgICAgICAgIDxjeC1pY29uIFt0eXBlXT1cImljb25UeXBlcy5DTE9TRVwiPjwvY3gtaWNvbj5cbiAgICAgICAgICA8L3NwYW4+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==