@vendasta/store
Version:
Components and data for Store
98 lines • 11.9 kB
JavaScript
import { CONTACT_SALES } from '../pricing/pricing';
export class Sellable {
get isFree() {
return this.pricing && this.pricing.prices
? this.pricing.prices.some((p) => p.price === 0 || p.price === undefined)
: false;
}
get shouldContactSales() {
return this.pricing && this.pricing.prices
? this.pricing.prices.some((p) => p.price === null || p.price === CONTACT_SALES) ||
this.pricing.prices.length === 0
: true;
}
static getCapitalizeFirstLetter(inputString) {
return inputString ? inputString.charAt(0).toUpperCase() + inputString.slice(1) : null;
}
get formattedPricingList() {
if (this.pricing && this.pricing.prices && this.pricing.prices.length) {
const hasCurrencyAndIsNotUSD = this.pricing.currency && this.pricing.currency !== 'USD';
const currencyStr = hasCurrencyAndIsNotUSD ? this.pricing.currency : '';
const currencySymbol = Sellable.getCurrencySymbol(this.pricing.currency);
return this.pricing.prices.map((price) => {
const frequencyStr = price.frequency ? '/ ' + Sellable.getCapitalizeFirstLetter(price.frequency) : '';
const roundedPrice = ((price.price || 0) / 100.0).toFixed(2);
const startingAtPrefix = price.isStartingPrice ? 'Starting at ' : '';
const priceStr = `${startingAtPrefix}${currencySymbol}${roundedPrice} ${currencyStr} ${frequencyStr}`;
return priceStr.trim().replace(/\s+/g, ' ');
});
}
else {
return ['Contact Sales'];
}
}
get priceStrings() {
if (this.shouldContactSales) {
return ['Contact Sales'];
}
if (this.isFree) {
return ['Free'];
}
return this.formattedPricingList;
}
get formattedWholesalePrice() {
return this.priceStrings.join(' + ');
}
static getCurrencySymbol(currency) {
let currencySymbol = '$';
switch (currency) {
case 'EUR':
currencySymbol = '\u20AC';
break;
case 'GBP':
currencySymbol = '\u00A3';
break;
case 'CHF':
currencySymbol = 'Fr';
break;
case 'CNY':
currencySymbol = '\u00A5';
break;
case 'JPY':
currencySymbol = '\u00A5';
break;
case 'CZK':
currencySymbol = 'K\u010d';
break;
case 'INR':
currencySymbol = '\u20B9';
break;
case 'KHR':
currencySymbol = '\u17DB';
break;
case 'KRW':
currencySymbol = '\u20A9';
break;
case 'NOK':
currencySymbol = 'kr';
break;
case 'SEK':
currencySymbol = 'kr';
break;
case 'RUB':
currencySymbol = '\u20BD';
break;
case 'TRY':
currencySymbol = '\u20BA';
break;
case 'ZAR':
currencySymbol = 'R';
break;
default:
currencySymbol = '$';
break;
}
return currencySymbol;
}
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsbGFibGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3N0b3JlL3NyYy9saWIvc2hhcmVkL3NlbGxhYmxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxhQUFhLEVBQVcsTUFBTSxvQkFBb0IsQ0FBQztBQUU1RCxNQUFNLE9BQU8sUUFBUTtJQUduQixJQUFJLE1BQU07UUFDUixPQUFPLElBQUksQ0FBQyxPQUFPLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNO1lBQ3hDLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxLQUFLLEtBQUssU0FBUyxDQUFDO1lBQ3pFLENBQUMsQ0FBQyxLQUFLLENBQUM7SUFDWixDQUFDO0lBRUQsSUFBSSxrQkFBa0I7UUFDcEIsT0FBTyxJQUFJLENBQUMsT0FBTyxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTTtZQUN4QyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxLQUFLLElBQUksSUFBSSxDQUFDLENBQUMsS0FBSyxLQUFLLGFBQWEsQ0FBQztnQkFDNUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsTUFBTSxLQUFLLENBQUM7WUFDcEMsQ0FBQyxDQUFDLElBQUksQ0FBQztJQUNYLENBQUM7SUFFRCxNQUFNLENBQUMsd0JBQXdCLENBQUMsV0FBbUI7UUFDakQsT0FBTyxXQUFXLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLEdBQUcsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMs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YyxHQUFHLFFBQVEsQ0FBQztnQkFDMUIsTUFBTTtZQUNSLEtBQUssS0FBSztnQkFDUixjQUFjLEdBQUcsUUFBUSxDQUFDO2dCQUMxQixNQUFNO1lBQ1IsS0FBSyxLQUFLO2dCQUNSLGNBQWMsR0FBRyxJQUFJLENBQUM7Z0JBQ3RCLE1BQU07WUFDUixLQUFLLEtBQUs7Z0JBQ1IsY0FBYyxHQUFHLElBQUksQ0FBQztnQkFDdEIsTUFBTTtZQUNSLEtBQUssS0FBSztnQkFDUixjQUFjLEdBQUcsUUFBUSxDQUFDO2dCQUMxQixNQUFNO1lBQ1IsS0FBSyxLQUFLO2dCQUNSLGNBQWMsR0FBRyxRQUFRLENBQUM7Z0JBQzFCLE1BQU07WUFDUixLQUFLLEtBQUs7Z0JBQ1IsY0FBYyxHQUFHLEdBQUcsQ0FBQztnQkFDckIsTUFBTTtZQUNSO2dCQUNFLGNBQWMsR0FBRyxHQUFHLENBQUM7Z0JBQ3JCLE1BQU07U0FDVDtRQUNELE9BQU8sY0FBYyxDQUFDO0lBQ3hCLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENPTlRBQ1RfU0FMRVMsIFByaWNpbmcgfSBmcm9tICcuLi9wcmljaW5nL3ByaWNpbmcnO1xuXG5leHBvcnQgY2xhc3MgU2VsbGFibGUge1xuICBwcmljaW5nOiBQcmljaW5nO1xuXG4gIGdldCBpc0ZyZWUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMucHJpY2luZyAmJiB0aGlzLnByaWNpbmcucHJpY2VzXG4gICAgICA/IHRoaXMucHJpY2luZy5wcmljZXMuc29tZSgocCkgPT4gcC5wcmljZSA9PT0gMCB8fCBwLnByaWNlID09PSB1bmRlZmluZWQpXG4gICAgICA6IGZhbHNlO1xuICB9XG5cbiAgZ2V0IHNob3VsZENvbnRhY3RTYWxlcygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5wcmljaW5nICYmIHRoaXMucHJpY2luZy5wcmljZXNcbiAgICAgID8gdGhpcy5wcmljaW5nLnByaWNlcy5zb21lKChwKSA9PiBwLnByaWNlID09PSBudWxsIHx8IHAucHJpY2UgPT09IENPTlRBQ1RfU0FMRVMpIHx8XG4gICAgICAgICAgdGhpcy5wcmljaW5nLnByaWNlcy5sZW5ndGggPT09IDBcbiAgICAgIDogdHJ1ZTtcbiAgfVxuXG4gIHN0YXRpYyBnZXRDYXBpdGFsaXplRmlyc3RMZXR0ZXIoaW5wdXRTdHJpbmc6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGlucHV0U3RyaW5nID8gaW5wdXRTdHJpbmcuY2hhckF0KDApLnRvVXBwZXJDYXNlKCkgKyBpbnB1dFN0cmluZy5zbGljZSgxKSA6IG51bGw7XG4gIH1cblxuICBnZXQgZm9ybWF0dGVkUHJpY2luZ0xpc3QoKTogc3RyaW5nW10ge1xuICAgIGlmICh0aGlzLnByaWNpbmcgJiYgdGhpcy5wcmljaW5nLnByaWNlcyAmJiB0aGlzLnByaWNpbmcucHJpY2VzLmxlbmd0aCkge1xuICAgICAgY29uc3QgaGFzQ3VycmVuY3lBbmRJc05vdFVTRCA9IHRoaXMucHJpY2luZy5jdXJyZW5jeSAmJiB0aGlzLnByaWNpbmcuY3VycmVuY3kgIT09ICdVU0QnO1xuICAgICAgY29uc3QgY3VycmVuY3lTdHIgPSBoYXNDdXJyZW5jeUFuZElzTm90VVNEID8gdGhpcy5wcmljaW5nLmN1cnJlbmN5IDogJyc7XG4gICAgICBjb25zdCBjdXJyZW5jeVN5bWJvbCA9IFNlbGxhYmxlLmdldEN1cnJlbmN5U3ltYm9sKHRoaXMucHJpY2luZy5jdXJyZW5jeSk7XG5cbiAgICAgIHJldHVybiB0aGlzLnByaWNpbmcucHJpY2VzLm1hcCgocHJpY2UpID0+IHtcbiAgICAgICAgY29uc3QgZnJlcXVlbmN5U3RyID0gcHJpY2UuZnJlcXVlbmN5ID8gJy8gJyArIFNlbGxhYmxlLmdldENhcGl0YWxpemVGaXJzdExldHRlcihwcmljZS5mcmVxdWVuY3kpIDogJyc7XG4gICAgICAgIGNvbnN0IHJvdW5kZWRQcmljZSA9ICgocHJpY2UucHJpY2UgfHwgMCkgLyAxMDAuMCkudG9GaXhlZCgyKTtcbiAgICAgICAgY29uc3Qgc3RhcnRpbmdBdFByZWZpeCA9IHByaWNlLmlzU3RhcnRpbmdQcmljZSA/ICdTdGFydGluZyBhdCAnIDogJyc7XG4gICAgICAgIGNvbnN0IHByaWNlU3RyID0gYCR7c3RhcnRpbmdBdFByZWZpeH0ke2N1cnJlbmN5U3ltYm9sfSR7cm91bmRlZFByaWNlfSAke2N1cnJlbmN5U3RyfSAke2ZyZXF1ZW5jeVN0cn1gO1xuICAgICAgICByZXR1cm4gcHJpY2VTdHIudHJpbSgpLnJlcGxhY2UoL1xccysvZywgJyAnKTtcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gWydDb250YWN0IFNhbGVzJ107XG4gICAgfVxuICB9XG5cbiAgZ2V0IHByaWNlU3RyaW5ncygpOiBzdHJpbmdbXSB7XG4gICAgaWYgKHRoaXMuc2hvdWxkQ29udGFjdFNhbGVzKSB7XG4gICAgICByZXR1cm4gWydDb250YWN0IFNhbGVzJ107XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuaXNGcmVlKSB7XG4gICAgICByZXR1cm4gWydGcmVlJ107XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuZm9ybWF0dGVkUHJpY2luZ0xpc3Q7XG4gIH1cblxuICBnZXQgZm9ybWF0dGVkV2hvbGVzYWxlUHJpY2UoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5wcmljZVN0cmluZ3Muam9pbignICsgJyk7XG4gIH1cblxuICBzdGF0aWMgZ2V0Q3VycmVuY3lTeW1ib2woY3VycmVuY3k6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgbGV0IGN1cnJlbmN5U3ltYm9sID0gJyQnO1xuICAgIHN3aXRjaCAoY3VycmVuY3kpIHtcbiAgICAgIGNhc2UgJ0VVUic6XG4gICAgICAgIGN1cnJlbmN5U3ltYm9sID0gJ1xcdTIwQUMnO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ0dCUCc6XG4gICAgICAgIGN1cnJlbmN5U3ltYm9sID0gJ1xcdTAwQTMnO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ0NIRic6XG4gICAgICAgIGN1cnJlbmN5U3ltYm9sID0gJ0ZyJztcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdDTlknOlxuICAgICAgICBjdXJyZW5jeVN5bWJvbCA9ICdcXHUwMEE1JztcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdKUFknOlxuICAgICAgICBjdXJyZW5jeVN5bWJvbCA9ICdcXHUwMEE1JztcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdDWksnOlxuICAgICAgICBjdXJyZW5jeVN5bWJvbCA9ICdLXFx1MDEwZCc7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnSU5SJzpcbiAgICAgICAgY3VycmVuY3lTeW1ib2wgPSAnXFx1MjBCOSc7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnS0hSJzpcbiAgICAgICAgY3VycmVuY3lTeW1ib2wgPSAnXFx1MTdEQic7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnS1JXJzpcbiAgICAgICAgY3VycmVuY3lTeW1ib2wgPSAnXFx1MjBBOSc7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnTk9LJzpcbiAgICAgICAgY3VycmVuY3lTeW1ib2wgPSAna3InO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ1NFSyc6XG4gICAgICAgIGN1cnJlbmN5U3ltYm9sID0gJ2tyJztcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdSVUInOlxuICAgICAgICBjdXJyZW5jeVN5bWJvbCA9ICdcXHUyMEJEJztcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdUUlknOlxuICAgICAgICBjdXJyZW5jeVN5bWJvbCA9ICdcXHUyMEJBJztcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdaQVInOlxuICAgICAgICBjdXJyZW5jeVN5bWJvbCA9ICdSJztcbiAgICAgICAgYnJlYWs7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICBjdXJyZW5jeVN5bWJvbCA9ICckJztcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICAgIHJldHVybiBjdXJyZW5jeVN5bWJvbDtcbiAgfVxufVxuIl19