UNPKG

@vendasta/store

Version:

Components and data for Store

98 lines 11.9 kB
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