UNPKG

@spartacus/storefront

Version:

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

33 lines 11 kB
import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output, } from '@angular/core'; import * as i0 from "@angular/core"; import * as i1 from "../../../../shared/components/media/media.component"; import * as i2 from "../../../cart/add-to-cart/add-to-cart.component"; import * as i3 from "@angular/router"; import * as i4 from "@angular/common"; import * as i5 from "@spartacus/core"; export class WishListItemComponent { constructor() { this.isLoading = false; this.remove = new EventEmitter(); } removeEntry(item) { this.remove.emit(item); } } WishListItemComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: WishListItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); WishListItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.0.5", type: WishListItemComponent, selector: "cx-wish-list-item", inputs: { isLoading: "isLoading", cartEntry: "cartEntry" }, outputs: { remove: "remove" }, ngImport: i0, template: "<div class=\"row\">\n <!-- Item Image -->\n <div class=\"cx-image-container col-2\">\n <a\n [routerLink]=\"{ cxRoute: 'product', params: cartEntry.product } | cxUrl\"\n tabindex=\"-1\"\n >\n <cx-media\n [container]=\"cartEntry.product.images?.PRIMARY\"\n format=\"thumbnail\"\n ></cx-media>\n </a>\n </div>\n <!-- Item Information -->\n <div class=\"cx-info col-10\">\n <div class=\"cx-info-container row\">\n <!-- Item Description -->\n <div class=\"col-md-5 col-lg-5 col-xl-5\">\n <div *ngIf=\"cartEntry.product.name\" class=\"cx-name\">\n <a\n class=\"cx-link\"\n [routerLink]=\"\n { cxRoute: 'product', params: cartEntry.product } | cxUrl\n \"\n ><h2>{{ cartEntry.product.name }}</h2></a\n >\n </div>\n <div *ngIf=\"cartEntry.product.code\" class=\"cx-code\">\n {{ 'cartItems.id' | cxTranslate }} {{ cartEntry.product.code }}\n </div>\n <!-- Variants -->\n <ng-container *ngIf=\"cartEntry.product.baseOptions?.length\">\n <div\n *ngFor=\"\n let variant of cartEntry.product.baseOptions[0]?.selected\n ?.variantOptionQualifiers\n \"\n class=\"cx-property\"\n >\n <div class=\"cx-label\" *ngIf=\"variant.name && variant.value\">\n {{ variant.name }}: {{ variant.value }}\n </div>\n </div>\n </ng-container>\n </div>\n <!-- Item Price -->\n <div\n *ngIf=\"cartEntry.basePrice\"\n class=\"cx-price col-md-3 col-lg-4 col-xl-4\"\n >\n <div class=\"cx-label d-block d-md-none d-lg-none d-xl-none\">\n {{ 'cartItems.itemPrice' | cxTranslate }}\n </div>\n <div *ngIf=\"cartEntry.basePrice\" class=\"cx-value\">\n {{ cartEntry.basePrice?.formattedValue }}\n </div>\n </div>\n <!-- Total -->\n <div class=\"col-sm-8 col-md-4 col-lg-3 col-xl-3 cx-add-to-cart\">\n <cx-add-to-cart\n *ngIf=\"\n cartEntry.product.stock.stockLevelStatus !== 'outOfStock';\n else outOfStock\n \"\n [showQuantity]=\"false\"\n [product]=\"cartEntry.product\"\n ></cx-add-to-cart>\n <ng-template #outOfStock>\n <span class=\"cx-out-of-stock\">\n {{ 'addToCart.outOfStock' | cxTranslate }}\n </span>\n </ng-template>\n </div>\n </div>\n <div class=\"cx-return-button col-12\">\n <button\n class=\"btn cx-action-link\"\n (click)=\"removeEntry(cartEntry)\"\n [disabled]=\"isLoading\"\n >\n {{ 'common.remove' | cxTranslate }}\n </button>\n </div>\n </div>\n</div>\n", components: [{ type: i1.MediaComponent, selector: "cx-media", inputs: ["container", "format", "alt", "role", "loading"], outputs: ["loaded"] }, { type: i2.AddToCartComponent, selector: "cx-add-to-cart", inputs: ["productCode", "showQuantity", "product"] }], directives: [{ type: i3.RouterLinkWithHref, selector: "a[routerLink],area[routerLink]", inputs: ["routerLink", "target", "queryParams", "fragment", "queryParamsHandling", "preserveFragment", "skipLocationChange", "replaceUrl", "state", "relativeTo"] }, { type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], pipes: { "cxUrl": i5.UrlPipe, "cxTranslate": i5.TranslatePipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush }); i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: WishListItemComponent, decorators: [{ type: Component, args: [{ selector: 'cx-wish-list-item', templateUrl: './wish-list-item.component.html', changeDetection: ChangeDetectionStrategy.OnPush, }] }], propDecorators: { isLoading: [{ type: Input }], cartEntry: [{ type: Input }], remove: [{ type: Output }] } }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2lzaC1saXN0LWl0ZW0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc3RvcmVmcm9udGxpYi9jbXMtY29tcG9uZW50cy93aXNoLWxpc3QvY29tcG9uZW50cy93aXNoLWxpc3QtaXRlbS93aXNoLWxpc3QtaXRlbS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zdG9yZWZyb250bGliL2Ntcy1jb21wb25lbnRzL3dpc2gtbGlzdC9jb21wb25lbnRzL3dpc2gtbGlzdC1pdGVtL3dpc2gtbGlzdC1pdGVtLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBQ0wsTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFDOzs7Ozs7O0FBUXZCLE1BQU0sT0FBTyxxQkFBcUI7SUFMbEM7UUFPRSxjQUFTLEdBQUcsS0FBSyxDQUFDO1FBSWxCLFdBQU0sR0FBRyxJQUFJLFlBQVksRUFBYyxDQUFDO0tBS3pDO0lBSEMsV0FBVyxDQUFDLElBQWdCO1FBQzFCLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3pCLENBQUM7O2tIQVZVLHFCQUFxQjtzR0FBckIscUJBQXFCLG9KQ2RsQyxpd0ZBcUZBOzJGRHZFYSxxQkFBcUI7a0JBTGpDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLG1CQUFtQjtvQkFDN0IsV0FBVyxFQUFFLGlDQUFpQztvQkFDOUMsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07aUJBQ2hEOzhCQUdDLFNBQVM7c0JBRFIsS0FBSztnQkFFRyxTQUFTO3NCQUFqQixLQUFLO2dCQUdOLE1BQU07c0JBREwsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE91dHB1dCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPcmRlckVudHJ5IH0gZnJvbSAnQHNwYXJ0YWN1cy9jb3JlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnY3gtd2lzaC1saXN0LWl0ZW0nLFxuICB0ZW1wbGF0ZVVybDogJy4vd2lzaC1saXN0LWl0ZW0uY29tcG9uZW50Lmh0bWwnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgV2lzaExpc3RJdGVtQ29tcG9uZW50IHtcbiAgQElucHV0KClcbiAgaXNMb2FkaW5nID0gZmFsc2U7XG4gIEBJbnB1dCgpIGNhcnRFbnRyeTogT3JkZXJFbnRyeTtcblxuICBAT3V0cHV0KClcbiAgcmVtb3ZlID0gbmV3IEV2ZW50RW1pdHRlcjxPcmRlckVudHJ5PigpO1xuXG4gIHJlbW92ZUVudHJ5KGl0ZW06IE9yZGVyRW50cnkpIHtcbiAgICB0aGlzLnJlbW92ZS5lbWl0KGl0ZW0pO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwicm93XCI+XG4gIDwhLS0gSXRlbSBJbWFnZSAtLT5cbiAgPGRpdiBjbGFzcz1cImN4LWltYWdlLWNvbnRhaW5lciBjb2wtMlwiPlxuICAgIDxhXG4gICAgICBbcm91dGVyTGlua109XCJ7IGN4Um91dGU6ICdwcm9kdWN0JywgcGFyYW1zOiBjYXJ0RW50cnkucHJvZHVjdCB9IHwgY3hVcmxcIlxuICAgICAgdGFiaW5kZXg9XCItMVwiXG4gICAgPlxuICAgICAgPGN4LW1lZGlhXG4gICAgICAgIFtjb250YWluZXJdPVwiY2FydEVudHJ5LnByb2R1Y3QuaW1hZ2VzPy5QUklNQVJZXCJcbiAgICAgICAgZm9ybWF0PVwidGh1bWJuYWlsXCJcbiAgICAgID48L2N4LW1lZGlhPlxuICAgIDwvYT5cbiAgPC9kaXY+XG4gIDwhLS0gSXRlbSBJbmZvcm1hdGlvbiAtLT5cbiAgPGRpdiBjbGFzcz1cImN4LWluZm8gY29sLTEwXCI+XG4gICAgPGRpdiBjbGFzcz1cImN4LWluZm8tY29udGFpbmVyIHJvd1wiPlxuICAgICAgPCEtLSBJdGVtIERlc2NyaXB0aW9uIC0tPlxuICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC01IGNvbC1sZy01IGNvbC14bC01XCI+XG4gICAgICAgIDxkaXYgKm5nSWY9XCJjYXJ0RW50cnkucHJvZHVjdC5uYW1lXCIgY2xhc3M9XCJjeC1uYW1lXCI+XG4gICAgICAgICAgPGFcbiAgICAgICAgICAgIGNsYXNzPVwiY3gtbGlua1wiXG4gICAgICAgICAgICBbcm91dGVyTGlua109XCJcbiAgICAgICAgICAgICAgeyBjeFJvdXRlOiAncHJvZHVjdCcsIHBhcmFtczogY2FydEVudHJ5LnByb2R1Y3QgfSB8IGN4VXJsXG4gICAgICAgICAgICBcIlxuICAgICAgICAgICAgPjxoMj57eyBjYXJ0RW50cnkucHJvZHVjdC5uYW1lIH19PC9oMj48L2FcbiAgICAgICAgICA+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2ICpuZ0lmPVwiY2FydEVudHJ5LnByb2R1Y3QuY29kZVwiIGNsYXNzPVwiY3gtY29kZVwiPlxuICAgICAgICAgIHt7ICdjYXJ0SXRlbXMuaWQnIHwgY3hUcmFuc2xhdGUgfX0ge3sgY2FydEVudHJ5LnByb2R1Y3QuY29kZSB9fVxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPCEtLSBWYXJpYW50cyAtLT5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImNhcnRFbnRyeS5wcm9kdWN0LmJhc2VPcHRpb25zPy5sZW5ndGhcIj5cbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAqbmdGb3I9XCJcbiAgICAgICAgICAgICAgbGV0IHZhcmlhbnQgb2YgY2FydEVudHJ5LnByb2R1Y3QuYmFzZU9wdGlvbnNbMF0/LnNlbGVjdGVkXG4gICAgICAgICAgICAgICAgPy52YXJpYW50T3B0aW9uUXVhbGlmaWVyc1xuICAgICAgICAgICAgXCJcbiAgICAgICAgICAgIGNsYXNzPVwiY3gtcHJvcGVydHlcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjeC1sYWJlbFwiICpuZ0lmPVwidmFyaWFudC5uYW1lICYmIHZhcmlhbnQudmFsdWVcIj5cbiAgICAgICAgICAgICAge3sgdmFyaWFudC5uYW1lIH19OiB7eyB2YXJpYW50LnZhbHVlIH19XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8L2Rpdj5cbiAgICAgIDwhLS0gSXRlbSBQcmljZSAtLT5cbiAgICAgIDxkaXZcbiAgICAgICAgKm5nSWY9XCJjYXJ0RW50cnkuYmFzZVByaWNlXCJcbiAgICAgICAgY2xhc3M9XCJjeC1wcmljZSBjb2wtbWQtMyBjb2wtbGctNCBjb2wteGwtNFwiXG4gICAgICA+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjeC1sYWJlbCBkLWJsb2NrIGQtbWQtbm9uZSBkLWxnLW5vbmUgZC14bC1ub25lXCI+XG4gICAgICAgICAge3sgJ2NhcnRJdGVtcy5pdGVtUHJpY2UnIHwgY3hUcmFuc2xhdGUgfX1cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgKm5nSWY9XCJjYXJ0RW50cnkuYmFzZVByaWNlXCIgY2xhc3M9XCJjeC12YWx1ZVwiPlxuICAgICAgICAgIHt7IGNhcnRFbnRyeS5iYXNlUHJpY2U/LmZvcm1hdHRlZFZhbHVlIH19XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgICA8IS0tIFRvdGFsIC0tPlxuICAgICAgPGRpdiBjbGFzcz1cImNvbC1zbS04IGNvbC1tZC00IGNvbC1sZy0zIGNvbC14bC0zIGN4LWFkZC10by1jYXJ0XCI+XG4gICAgICAgIDxjeC1hZGQtdG8tY2FydFxuICAgICAgICAgICpuZ0lmPVwiXG4gICAgICAgICAgICBjYXJ0RW50cnkucHJvZHVjdC5zdG9jay5zdG9ja0xldmVsU3RhdHVzICE9PSAnb3V0T2ZTdG9jayc7XG4gICAgICAgICAgICBlbHNlIG91dE9mU3RvY2tcbiAgICAgICAgICBcIlxuICAgICAgICAgIFtzaG93UXVhbnRpdHldPVwiZmFsc2VcIlxuICAgICAgICAgIFtwcm9kdWN0XT1cImNhcnRFbnRyeS5wcm9kdWN0XCJcbiAgICAgICAgPjwvY3gtYWRkLXRvLWNhcnQ+XG4gICAgICAgIDxuZy10ZW1wbGF0ZSAjb3V0T2ZTdG9jaz5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cImN4LW91dC1vZi1zdG9ja1wiPlxuICAgICAgICAgICAge3sgJ2FkZFRvQ2FydC5vdXRPZlN0b2NrJyB8IGN4VHJhbnNsYXRlIH19XG4gICAgICAgICAgPC9zcGFuPlxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImN4LXJldHVybi1idXR0b24gY29sLTEyXCI+XG4gICAgICA8YnV0dG9uXG4gICAgICAgIGNsYXNzPVwiYnRuIGN4LWFjdGlvbi1saW5rXCJcbiAgICAgICAgKGNsaWNrKT1cInJlbW92ZUVudHJ5KGNhcnRFbnRyeSlcIlxuICAgICAgICBbZGlzYWJsZWRdPVwiaXNMb2FkaW5nXCJcbiAgICAgID5cbiAgICAgICAge3sgJ2NvbW1vbi5yZW1vdmUnIHwgY3hUcmFuc2xhdGUgfX1cbiAgICAgIDwvYnV0dG9uPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19