@vendasta/store
Version:
Components and data for Store
55 lines • 9.62 kB
JavaScript
import { Component, Input } from '@angular/core';
import { MarketingType } from '../../product-details-v2.interface';
import * as i0 from "@angular/core";
import * as i1 from "@angular/material/card";
import * as i2 from "../billing-pricing-display/billing-pricing-display.component";
import * as i3 from "@angular/common";
import * as i4 from "@ngx-translate/core";
export class BillingPriceCardComponent {
constructor() {
this.contactSales = false;
this.startingAt = false;
this.marketingType = MarketingType.Partner;
this.hasEditions = false;
this.marketingTypeEnum = MarketingType;
}
ngOnChanges() {
if (this.billingPrice) {
this.displayPrice = this.selectLowestEdition(this.billingPrice);
}
if (Object.keys(this.billingPrice).length > 1) {
this.hasEditions = true;
}
}
selectLowestEdition(prices) {
let lowestPrice = null;
let lowest;
Object.keys(prices).forEach((key) => {
const curObj = prices[key];
curObj.pricingRules.forEach((rule) => {
if (lowestPrice === null || rule.price < lowestPrice) {
lowestPrice = rule.price;
lowest = curObj;
}
});
});
return lowest;
}
}
BillingPriceCardComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: BillingPriceCardComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
BillingPriceCardComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.2", type: BillingPriceCardComponent, selector: "app-billing-price-card", inputs: { billingPrice: "billingPrice", contactSales: "contactSales", startingAt: "startingAt", isOO: "isOO", marketingType: "marketingType" }, usesOnChanges: true, ngImport: i0, template: "<mat-card>\n <div>\n <div class=\"va-component-title\">\n {{\n (marketingType === marketingTypeEnum.EndUser\n ? 'FRONTEND.STORE.PRICE'\n : 'FRONTEND.STORE.WHOLESALE_COST'\n ) | translate\n }}\n <div *ngIf=\"startingAt || hasEditions\" class=\"subtitle\">\n {{ 'FRONTEND.STORE.STARTING_AT' | translate }}\n </div>\n </div>\n\n <ng-container *ngIf=\"displayPrice\">\n <app-billing-pricing-display\n [contactSales]=\"contactSales\"\n [priceData]=\"displayPrice\"\n ></app-billing-pricing-display>\n </ng-container>\n </div>\n</mat-card>\n", styles: [".va-component-title{font-size:16px;font-weight:400;margin-bottom:16px}.price-card-title{font-size:32px;font-weight:400;color:#212121}.subtitle{font-size:14px;font-weight:400;color:#616161}\n"], components: [{ type: i1.MatCard, selector: "mat-card", exportAs: ["matCard"] }, { type: i2.BillingPricingDisplayComponent, selector: "app-billing-pricing-display", inputs: ["contactSales", "priceData"] }], directives: [{ type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "translate": i4.TranslatePipe } });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: BillingPriceCardComponent, decorators: [{
type: Component,
args: [{ selector: 'app-billing-price-card', template: "<mat-card>\n <div>\n <div class=\"va-component-title\">\n {{\n (marketingType === marketingTypeEnum.EndUser\n ? 'FRONTEND.STORE.PRICE'\n : 'FRONTEND.STORE.WHOLESALE_COST'\n ) | translate\n }}\n <div *ngIf=\"startingAt || hasEditions\" class=\"subtitle\">\n {{ 'FRONTEND.STORE.STARTING_AT' | translate }}\n </div>\n </div>\n\n <ng-container *ngIf=\"displayPrice\">\n <app-billing-pricing-display\n [contactSales]=\"contactSales\"\n [priceData]=\"displayPrice\"\n ></app-billing-pricing-display>\n </ng-container>\n </div>\n</mat-card>\n", styles: [".va-component-title{font-size:16px;font-weight:400;margin-bottom:16px}.price-card-title{font-size:32px;font-weight:400;color:#212121}.subtitle{font-size:14px;font-weight:400;color:#616161}\n"] }]
}], propDecorators: { billingPrice: [{
type: Input
}], contactSales: [{
type: Input
}], startingAt: [{
type: Input
}], isOO: [{
type: Input
}], marketingType: [{
type: Input
}] } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmlsbGluZy1wcmljZS1jYXJkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvc3RvcmUvc3JjL2xpYi9wcm9kdWN0LWRldGFpbHMtdjIvYmlsbGluZy1wcmljZS9iaWxsaW5nLXByaWNlLWNhcmQvYmlsbGluZy1wcmljZS1jYXJkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvc3RvcmUvc3JjL2xpYi9wcm9kdWN0LWRldGFpbHMtdjIvYmlsbGluZy1wcmljZS9iaWxsaW5nLXByaWNlLWNhcmQvYmlsbGluZy1wcmljZS1jYXJkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBRTVELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQzs7Ozs7O0FBT25FLE1BQU0sT0FBTyx5QkFBeUI7SUFMdEM7UUFPVyxpQkFBWSxHQUFHLEtBQUssQ0FBQztRQUNyQixlQUFVLEdBQUcsS0FBSyxDQUFDO1FBSW5CLGtCQUFhLEdBQWtCLGFBQWEsQ0FBQyxPQUFPLENBQUM7UUFHOUQsZ0JBQVcsR0FBRyxLQUFLLENBQUM7UUFDcEIsc0JBQWlCLEdBQUcsYUFBYSxDQUFDO0tBeUJuQztJQXZCQyxXQUFXO1FBQ1QsSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFO1lBQ3JCLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztTQUNqRTtRQUNELElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtZQUM3QyxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQztTQUN6QjtJQUNILENBQUM7SUFFRCxtQkFBbUIsQ0FBQyxNQUFzQjtRQUN4QyxJQUFJLFdBQVcsR0FBVyxJQUFJLENBQUM7UUFDL0IsSUFBSSxNQUFzQixDQUFDO1FBQzNCLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUU7WUFDbEMsTUFBTSxNQUFNLEdBQW1CLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUMzQyxNQUFNLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO2dCQUNuQyxJQUFJLFdBQVcsS0FBSyxJQUFJLElBQUksSUFBSSxDQUFDLEtBQUssR0FBRyxXQUFXLEVBQUU7b0JBQ3BELFdBQVcsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDO29CQUN6QixNQUFNLEdBQUcsTUFBTSxDQUFDO2lCQUNqQjtZQUNILENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7UUFDSCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDOztzSEFuQ1UseUJBQXlCOzBHQUF6Qix5QkFBeUIsbU9DVHRDLDBuQkFzQkE7MkZEYmEseUJBQXlCO2tCQUxyQyxTQUFTOytCQUNFLHdCQUF3Qjs4QkFLekIsWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBR0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFByb2R1Y3RQcmljaW5nIH0gZnJvbSAnQHZlbmRhc3RhL2JpbGxpbmcnO1xuaW1wb3J0IHsgTWFya2V0aW5nVHlwZSB9IGZyb20gJy4uLy4uL3Byb2R1Y3QtZGV0YWlscy12Mi5pbnRlcmZhY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtYmlsbGluZy1wcmljZS1jYXJkJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2JpbGxpbmctcHJpY2UtY2FyZC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2JpbGxpbmctcHJpY2UtY2FyZC5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBCaWxsaW5nUHJpY2VDYXJkQ29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzIHtcbiAgQElucHV0KCkgYmlsbGluZ1ByaWNlOiBQcm9kdWN0UHJpY2luZztcbiAgQElucHV0KCkgY29udGFjdFNhbGVzID0gZmFsc2U7XG4gIEBJbnB1dCgpIHN0YXJ0aW5nQXQgPSBmYWxzZTtcbiAgLyoqIEBkZXByZWNhdGVkOiB0aGlzIGZpZWxkIGlzIG5vdyBpZ25vcmVkIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgdmVyc2lvbi5cbiAgICogTyZPIHByb2R1Y3RzIGFyZSBub3cgdHJlYXRlZCB0aGUgc2FtZSBhcyBhbGwgb3RoZXIgcHJvZHVjdHMsIHJlbmRlcmluZyB0aGlzIGZsYWcgdW5uZWNlc3NhcnkuICovXG4gIEBJbnB1dCgpIGlzT086IGJvb2xlYW47XG4gIEBJbnB1dCgpIG1hcmtldGluZ1R5cGU6IE1hcmtldGluZ1R5cGUgPSBNYXJrZXRpbmdUeXBlLlBhcnRuZXI7XG5cbiAgZGlzcGxheVByaWNlOiBQcm9kdWN0UHJpY2luZztcbiAgaGFzRWRpdGlvbnMgPSBmYWxzZTtcbiAgbWFya2V0aW5nVHlwZUVudW0gPSBNYXJrZXRpbmdUeXBlO1xuXG4gIG5nT25DaGFuZ2VzKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmJpbGxpbmdQcmljZSkge1xuICAgICAgdGhpcy5kaXNwbGF5UHJpY2UgPSB0aGlzLnNlbGVjdExvd2VzdEVkaXRpb24odGhpcy5iaWxsaW5nUHJpY2UpO1xuICAgIH1cbiAgICBpZiAoT2JqZWN0LmtleXModGhpcy5iaWxsaW5nUHJpY2UpLmxlbmd0aCA+IDEpIHtcbiAgICAgIHRoaXMuaGFzRWRpdGlvbnMgPSB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIHNlbGVjdExvd2VzdEVkaXRpb24ocHJpY2VzOiBQcm9kdWN0UHJpY2luZyk6IFByb2R1Y3RQcmljaW5nIHtcbiAgICBsZXQgbG93ZXN0UHJpY2U6IG51bWJlciA9IG51bGw7XG4gICAgbGV0IGxvd2VzdDogUHJvZHVjdFByaWNpbmc7XG4gICAgT2JqZWN0LmtleXMocHJpY2VzKS5mb3JFYWNoKChrZXkpID0+IHtcbiAgICAgIGNvbnN0IGN1ck9iajogUHJvZHVjdFByaWNpbmcgPSBwcmljZXNba2V5XTtcbiAgICAgIGN1ck9iai5wcmljaW5nUnVsZXMuZm9yRWFjaCgocnVsZSkgPT4ge1xuICAgICAgICBpZiAobG93ZXN0UHJpY2UgPT09IG51bGwgfHwgcnVsZS5wcmljZSA8IGxvd2VzdFByaWNlKSB7XG4gICAgICAgICAgbG93ZXN0UHJpY2UgPSBydWxlLnByaWNlO1xuICAgICAgICAgIGxvd2VzdCA9IGN1ck9iajtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSk7XG4gICAgcmV0dXJuIGxvd2VzdDtcbiAgfVxufVxuIiwiPG1hdC1jYXJkPlxuICA8ZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJ2YS1jb21wb25lbnQtdGl0bGVcIj5cbiAgICAgIHt7XG4gICAgICAgIChtYXJrZXRpbmdUeXBlID09PSBtYXJrZXRpbmdUeXBlRW51bS5FbmRVc2VyXG4gICAgICAgICAgPyAnRlJPTlRFTkQuU1RPUkUuUFJJQ0UnXG4gICAgICAgICAgOiAnRlJPTlRFTkQuU1RPUkUuV0hPTEVTQUxFX0NPU1QnXG4gICAgICAgICkgfCB0cmFuc2xhdGVcbiAgICAgIH19XG4gICAgICA8ZGl2ICpuZ0lmPVwic3RhcnRpbmdBdCB8fCBoYXNFZGl0aW9uc1wiIGNsYXNzPVwic3VidGl0bGVcIj5cbiAgICAgICAge3sgJ0ZST05URU5ELlNUT1JFLlNUQVJUSU5HX0FUJyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZGlzcGxheVByaWNlXCI+XG4gICAgICA8YXBwLWJpbGxpbmctcHJpY2luZy1kaXNwbGF5XG4gICAgICAgIFtjb250YWN0U2FsZXNdPVwiY29udGFjdFNhbGVzXCJcbiAgICAgICAgW3ByaWNlRGF0YV09XCJkaXNwbGF5UHJpY2VcIlxuICAgICAgPjwvYXBwLWJpbGxpbmctcHJpY2luZy1kaXNwbGF5PlxuICAgIDwvbmctY29udGFpbmVyPlxuICA8L2Rpdj5cbjwvbWF0LWNhcmQ+XG4iXX0=