@vendasta/store
Version:
Components and data for Store
95 lines • 13.4 kB
JavaScript
import { Component, Input } from '@angular/core';
import { ProductCost } from '@vendasta/marketplace-apps/v1';
import * as i0 from "@angular/core";
import * as i1 from "@angular/material/card";
import * as i2 from "../mp-cost-pricing-display/mp-cost-pricing-display.component";
import * as i3 from "@angular/common";
import * as i4 from "@ngx-translate/core";
export class MarketplaceCostCardComponent {
constructor() {
this.contactSales = false;
this.hasEditions = false;
}
ngOnChanges() {
if (this.marketplaceCost) {
this.prepareDisplayCost(this.marketplaceCost, this.isOO);
}
}
prepareDisplayCost(costs, isOO) {
if (isOO) {
this.displayCost = this.selectHighestEdition(costs);
}
else {
this.displayCost = this.selectLowestEdition(costs);
}
}
selectLowestEdition(costs) {
let lowest = null;
Object.keys(costs).forEach((key) => {
const curObj = costs[key];
const curObjEditions = curObj.editionCost;
if (curObjEditions) {
Object.keys(curObjEditions).forEach((edKey) => {
const curEdition = curObjEditions[edKey];
curEdition.commitment = curObj.commitment;
if (!curEdition.cost) {
curEdition.cost = 0;
}
this.hasEditions = true;
if (!lowest) {
lowest = curEdition;
}
else if (lowest.cost > curEdition.cost) {
lowest = curEdition;
}
});
}
else {
lowest = curObj;
this.hasEditions = false;
}
});
return lowest;
}
selectHighestEdition(costs) {
let highest = null;
Object.keys(costs).forEach((key) => {
const curObj = costs[key];
const curObjEditions = curObj.editionCost;
if (curObjEditions) {
Object.keys(curObjEditions).forEach((edKey) => {
const curEdition = curObjEditions[edKey];
curEdition.commitment = curObj.commitment;
if (!curEdition.cost) {
curEdition.cost = 0;
}
this.hasEditions = true;
if (!highest) {
highest = curEdition;
}
else if (highest.cost < curEdition.cost) {
highest = curEdition;
}
});
}
else {
highest = curObj;
this.hasEditions = false;
}
});
return highest;
}
}
MarketplaceCostCardComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: MarketplaceCostCardComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
MarketplaceCostCardComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.2", type: MarketplaceCostCardComponent, selector: "app-marketplace-cost-card", inputs: { marketplaceCost: "marketplaceCost", contactSales: "contactSales", isOO: "isOO" }, usesOnChanges: true, ngImport: i0, template: "<mat-card>\n <div>\n <div class=\"va-component-title\">\n {{ displayCost.isWholesale ? 'Wholesale cost' : 'Cost' }}\n <div *ngIf=\"hasEditions && !isOO\" class=\"subtitle\">\n {{ 'FRONTEND.STORE.STARTING_AT' | translate }}\n </div>\n </div>\n\n <ng-container *ngIf=\"displayCost\">\n <app-mp-cost-pricing-display\n [contactSales]=\"contactSales\"\n [costData]=\"displayCost\"\n ></app-mp-cost-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.MpCostPricingDisplayComponent, selector: "app-mp-cost-pricing-display", inputs: ["contactSales", "costData"] }], 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: MarketplaceCostCardComponent, decorators: [{
type: Component,
args: [{ selector: 'app-marketplace-cost-card', template: "<mat-card>\n <div>\n <div class=\"va-component-title\">\n {{ displayCost.isWholesale ? 'Wholesale cost' : 'Cost' }}\n <div *ngIf=\"hasEditions && !isOO\" class=\"subtitle\">\n {{ 'FRONTEND.STORE.STARTING_AT' | translate }}\n </div>\n </div>\n\n <ng-container *ngIf=\"displayCost\">\n <app-mp-cost-pricing-display\n [contactSales]=\"contactSales\"\n [costData]=\"displayCost\"\n ></app-mp-cost-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: { marketplaceCost: [{
type: Input
}], contactSales: [{
type: Input
}], isOO: [{
type: Input
}] } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFya2V0cGxhY2UtY29zdC1jYXJkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvc3RvcmUvc3JjL2xpYi9wcm9kdWN0LWRldGFpbHMtdjIvbWFya2V0cGxhY2UtY29zdC9tYXJrZXRwbGFjZS1jb3N0LWNhcmQvbWFya2V0cGxhY2UtY29zdC1jYXJkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvc3RvcmUvc3JjL2xpYi9wcm9kdWN0LWRldGFpbHMtdjIvbWFya2V0cGxhY2UtY29zdC9tYXJrZXRwbGFjZS1jb3N0LWNhcmQvbWFya2V0cGxhY2UtY29zdC1jYXJkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBQzVELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQzs7Ozs7O0FBTzVELE1BQU0sT0FBTyw0QkFBNEI7SUFMekM7UUFPVyxpQkFBWSxHQUFHLEtBQUssQ0FBQztRQUc5QixnQkFBVyxHQUFHLEtBQUssQ0FBQztLQXFFckI7SUFuRUMsV0FBVztRQUNULElBQUksSUFBSSxDQUFDLGVBQWUsRUFBRTtZQUN4QixJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDMUQ7SUFDSCxDQUFDO0lBRUQsa0JBQWtCLENBQUMsS0FBa0IsRUFBRSxJQUFhO1FBQ2xELElBQUksSUFBSSxFQUFFO1lBQ1IsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsb0JBQW9CLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDckQ7YUFBTTtZQUNMLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQ3BEO0lB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bnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT25DaGFuZ2VzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBQcm9kdWN0Q29zdCB9IGZyb20gJ0B2ZW5kYXN0YS9tYXJrZXRwbGFjZS1hcHBzL3YxJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLW1hcmtldHBsYWNlLWNvc3QtY2FyZCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9tYXJrZXRwbGFjZS1jb3N0LWNhcmQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9tYXJrZXRwbGFjZS1jb3N0LWNhcmQuY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgTWFya2V0cGxhY2VDb3N0Q2FyZENvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcyB7XG4gIEBJbnB1dCgpIG1hcmtldHBsYWNlQ29zdDogUHJvZHVjdENvc3Q7XG4gIEBJbnB1dCgpIGNvbnRhY3RTYWxlcyA9IGZhbHNlO1xuICBASW5wdXQoKSBpc09POiBib29sZWFuO1xuICBkaXNwbGF5Q29zdDogUHJvZHVjdENvc3Q7XG4gIGhhc0VkaXRpb25zID0gZmFsc2U7XG5cbiAgbmdPbkNoYW5nZXMoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMubWFya2V0cGxhY2VDb3N0KSB7XG4gICAgICB0aGlzLnByZXBhcmVEaXNwbGF5Q29zdCh0aGlzLm1hcmtldHBsYWNlQ29zdCwgdGhpcy5pc09PKTtcbiAgICB9XG4gIH1cblxuICBwcmVwYXJlRGlzcGxheUNvc3QoY29zdHM6IFByb2R1Y3RDb3N0LCBpc09POiBib29sZWFuKTogdm9pZCB7XG4gICAgaWYgKGlzT08pIHtcbiAgICAgIHRoaXMuZGlzcGxheUNvc3QgPSB0aGlzLnNlbGVjdEhpZ2hlc3RFZGl0aW9uKGNvc3RzKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5kaXNwbGF5Q29zdCA9IHRoaXMuc2VsZWN0TG93ZXN0RWRpdGlvbihjb3N0cyk7XG4gICAgfVxuICB9XG5cbiAgc2VsZWN0TG93ZXN0RWRpdGlvbihjb3N0czogUHJvZHVjdENvc3QpOiBQcm9kdWN0Q29zdCB7XG4gICAgbGV0IGxvd2VzdDogUHJvZHVjdENvc3QgPSBudWxsO1xuICAgIE9iamVjdC5rZXlzKGNvc3RzKS5mb3JFYWNoKChrZXkpID0+IHtcbiAgICAgIGNvbnN0IGN1ck9iajogUHJvZHVjdENvc3QgPSBjb3N0c1trZXldO1xuICAgICAgY29uc3QgY3VyT2JqRWRpdGlvbnMgPSBjdXJPYmouZWRpdGlvbkNvc3Q7XG4gICAgICBpZiAoY3VyT2JqRWRpdGlvbnMpIHtcbiAgICAgICAgT2JqZWN0LmtleXMoY3VyT2JqRWRpdGlvbnMpLmZvckVhY2goKGVkS2V5KSA9PiB7XG4gICAgICAgICAgY29uc3QgY3VyRWRpdGlvbiA9IGN1ck9iakVkaXRpb25zW2VkS2V5XTtcbiAgICAgICAgICBjdXJFZGl0aW9uLmNvbW1pdG1lbnQgPSBjdXJPYmouY29tbWl0bWVudDtcbiAgICAgICAgICBpZiAoIWN1ckVkaXRpb24uY29zdCkge1xuICAgICAgICAgICAgY3VyRWRpdGlvbi5jb3N0ID0gMDtcbiAgICAgICAgICB9XG4gICAgICAgICAgdGhpcy5oYXNFZGl0aW9ucyA9IHRydWU7XG4gICAgICAgICAgaWYgKCFsb3dlc3QpIHtcbiAgICAgICAgICAgIGxvd2VzdCA9IGN1ckVkaXRpb247XG4gICAgICAgICAgfSBlbHNlIGlmIChsb3dlc3QuY29zdCA+IGN1ckVkaXRpb24uY29zdCkge1xuICAgICAgICAgICAgbG93ZXN0ID0gY3VyRWRpdGlvbjtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbG93ZXN0ID0gY3VyT2JqO1xuICAgICAgICB0aGlzLmhhc0VkaXRpb25zID0gZmFsc2U7XG4gICAgICB9XG4gICAgfSk7XG4gICAgcmV0dXJuIGxvd2VzdDtcbiAgfVxuXG4gIHNlbGVjdEhpZ2hlc3RFZGl0aW9uKGNvc3RzOiBQcm9kdWN0Q29zdCk6IFByb2R1Y3RDb3N0IHtcbiAgICBsZXQgaGlnaGVzdDogUHJvZHVjdENvc3QgPSBudWxsO1xuICAgIE9iamVjdC5rZXlzKGNvc3RzKS5mb3JFYWNoKChrZXkpID0+IHtcbiAgICAgIGNvbnN0IGN1ck9iajogUHJvZHVjdENvc3QgPSBjb3N0c1trZXldO1xuICAgICAgY29uc3QgY3VyT2JqRWRpdGlvbnMgPSBjdXJPYmouZWRpdGlvbkNvc3Q7XG4gICAgICBpZiAoY3VyT2JqRWRpdGlvbnMpIHtcbiAgICAgICAgT2JqZWN0LmtleXMoY3VyT2JqRWRpdGlvbnMpLmZvckVhY2goKGVkS2V5KSA9PiB7XG4gICAgICAgICAgY29uc3QgY3VyRWRpdGlvbiA9IGN1ck9iakVkaXRpb25zW2VkS2V5XTtcbiAgICAgICAgICBjdXJFZGl0aW9uLmNvbW1pdG1lbnQgPSBjdXJPYmouY29tbWl0bWVudDtcbiAgICAgICAgICBpZiAoIWN1ckVkaXRpb24uY29zdCkge1xuICAgICAgICAgICAgY3VyRWRpdGlvbi5jb3N0ID0gMDtcbiAgICAgICAgICB9XG4gICAgICAgICAgdGhpcy5oYXNFZGl0aW9ucyA9IHRydWU7XG4gICAgICAgICAgaWYgKCFoaWdoZXN0KSB7XG4gICAgICAgICAgICBoaWdoZXN0ID0gY3VyRWRpdGlvbjtcbiAgICAgICAgICB9IGVsc2UgaWYgKGhpZ2hlc3QuY29zdCA8IGN1ckVkaXRpb24uY29zdCkge1xuICAgICAgICAgICAgaGlnaGVzdCA9IGN1ckVkaXRpb247XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGhpZ2hlc3QgPSBjdXJPYmo7XG4gICAgICAgIHRoaXMuaGFzRWRpdGlvbnMgPSBmYWxzZTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICByZXR1cm4gaGlnaGVzdDtcbiAgfVxufVxuIiwiPG1hdC1jYXJkPlxuICA8ZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJ2YS1jb21wb25lbnQtdGl0bGVcIj5cbiAgICAgIHt7IGRpc3BsYXlDb3N0LmlzV2hvbGVzYWxlID8gJ1dob2xlc2FsZSBjb3N0JyA6ICdDb3N0JyB9fVxuICAgICAgPGRpdiAqbmdJZj1cImhhc0VkaXRpb25zICYmICFpc09PXCIgY2xhc3M9XCJzdWJ0aXRsZVwiPlxuICAgICAgICB7eyAnRlJPTlRFTkQuU1RPUkUuU1RBUlRJTkdfQVQnIHwgdHJhbnNsYXRlIH19XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cblxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJkaXNwbGF5Q29zdFwiPlxuICAgICAgPGFwcC1tcC1jb3N0LXByaWNpbmctZGlzcGxheVxuICAgICAgICBbY29udGFjdFNhbGVzXT1cImNvbnRhY3RTYWxlc1wiXG4gICAgICAgIFtjb3N0RGF0YV09XCJkaXNwbGF5Q29zdFwiXG4gICAgICA+PC9hcHAtbXAtY29zdC1wcmljaW5nLWRpc3BsYXk+XG4gICAgPC9uZy1jb250YWluZXI+XG4gIDwvZGl2PlxuPC9tYXQtY2FyZD5cbiJdfQ==