@vendasta/store
Version:
Components and data for Store
134 lines • 12.5 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
import { CONTACT_SALES } from '../pricing/pricing';
export class Sellable {
/**
* @return {?}
*/
get isFree() {
return this.pricing && this.pricing.prices ? this.pricing.prices.some(p => p.price === 0 || p.price === undefined) : false;
}
/**
* @return {?}
*/
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;
}
/**
* @param {?} inputString
* @return {?}
*/
static getCapitalizeFirstLetter(inputString) {
return inputString ? inputString.charAt(0).toUpperCase() + inputString.slice(1) : null;
}
/**
* @return {?}
*/
get formattedPricingList() {
if (this.pricing && this.pricing.prices && this.pricing.prices.length) {
/** @type {?} */
const hasCurrencyAndIsNotUSD = this.pricing.currency && this.pricing.currency !== 'USD';
/** @type {?} */
const currencyStr = hasCurrencyAndIsNotUSD ? this.pricing.currency : '';
/** @type {?} */
const currencySymbol = Sellable.getCurrencySymbol(this.pricing.currency);
return this.pricing.prices.map(price => {
/** @type {?} */
const frequencyStr = price.frequency ? '/ ' + Sellable.getCapitalizeFirstLetter(price.frequency) : '';
/** @type {?} */
const roundedPrice = (price.price / 100.0).toFixed(2);
/** @type {?} */
const startingAtPrefix = price.isStartingPrice ? 'Starting at ' : '';
/** @type {?} */
const priceStr = `${startingAtPrefix}${currencySymbol}${roundedPrice} ${currencyStr} ${frequencyStr}`;
return (priceStr.trim().replace(/\s+/g, ' '));
});
}
else {
return ['Contact Sales'];
}
}
/**
* @return {?}
*/
get priceStrings() {
if (this.shouldContactSales) {
return ['Contact Sales'];
}
if (this.isFree) {
return ['Free'];
}
return this.formattedPricingList;
}
/**
* @return {?}
*/
get formattedWholesalePrice() {
return this.priceStrings.join(' + ');
}
/**
* @param {?} currency
* @return {?}
*/
static getCurrencySymbol(currency) {
/** @type {?} */
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;
}
}
if (false) {
/** @type {?} */
Sellable.prototype.pricing;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsbGFibGUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AdmVuZGFzdGEvc3RvcmUvIiwic291cmNlcyI6WyJsaWIvc2hhcmVkL3NlbGxhYmxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUUsYUFBYSxFQUFXLE1BQU0sb0JBQW9CLENBQUM7QUFFNUQsTUFBTSxPQUFPLFFBQVE7Ozs7SUFHakIsSUFBSSxNQUFNO1FBQ0wsT0FBTyxJQUFJLENBQUMsT0FBTyxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBSyxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7SUFDaEksQ0FBQzs7OztJQUVELElBQUksa0JBQWtCO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLE9BQU8sSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ3hDLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLEtBQUssSUFBSSxJQUFJLENBQUMsQ0FBQyxLQUFLLEtBQUssYUFBYSxDQUFDO2dCQUM1RSxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7SUFDaEQsQ0FBQzs7Ozs7SUFFRCxNQUFNLENBQUMsd0JBQXdCLENBQUMsV0FBbUI7UUFDL0MsT0FBTyxXQUFXLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLEdBQUcsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFD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WUFDN0MsS0FBSyxLQUFLO2dCQUFFLGNBQWMsR0FBRyxJQUFJLENBQUM7Z0JBQUMsTUFBTTtZQUN6QyxLQUFLLEtBQUs7Z0JBQUUsY0FBYyxHQUFHLElBQUksQ0FBQztnQkFBQyxNQUFNO1lBQ3pDLEtBQUssS0FBSztnQkFBRSxjQUFjLEdBQUcsUUFBUSxDQUFDO2dCQUFDLE1BQU07WUFDN0MsS0FBSyxLQUFLO2dCQUFFLGNBQWMsR0FBRyxRQUFRLENBQUM7Z0JBQUMsTUFBTTtZQUM3QyxLQUFLLEtBQUs7Z0JBQUUsY0FBYyxHQUFHLEdBQUcsQ0FBQztnQkFBQyxNQUFNO1lBQ3hDO2dCQUFTLGNBQWMsR0FBRyxHQUFHLENBQUM7Z0JBQUMsTUFBTTtTQUN4QztRQUNELE9BQU8sY0FBYyxDQUFDO0lBQzFCLENBQUM7Q0FFSjs7O0lBeEVHLDJCQUFpQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENPTlRBQ1RfU0FMRVMsIFByaWNpbmcgfSBmcm9tICcuLi9wcmljaW5nL3ByaWNpbmcnO1xuXG5leHBvcnQgY2xhc3MgU2VsbGFibGUge1xuICAgIHByaWNpbmc6IFByaWNpbmc7XG5cbiAgICBnZXQgaXNGcmVlKCk6IGJvb2xlYW4ge1xuICAgICAgICAgcmV0dXJuIHRoaXMucHJpY2luZyAmJiB0aGlzLnByaWNpbmcucHJpY2VzID8gdGhpcy5wcmljaW5nLnByaWNlcy5zb21lKHAgPT4gcC5wcmljZSA9PT0gMCB8fCBwLnByaWNlID09PSB1bmRlZmluZWQpIDogZmFsc2U7XG4gICAgfVxuXG4gICAgZ2V0IHNob3VsZENvbnRhY3RTYWxlcygpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucHJpY2luZyAmJiB0aGlzLnByaWNpbmcucHJpY2VzID9cbiAgICAgICAgICAgIHRoaXMucHJpY2luZy5wcmljZXMuc29tZShwID0+IHAucHJpY2UgPT09IG51bGwgfHwgcC5wcmljZSA9PT0gQ09OVEFDVF9TQUxFUykgfHxcbiAgICAgICAgICAgIHRoaXMucHJpY2luZy5wcmljZXMubGVuZ3RoID09PSAwIDogdHJ1ZTtcbiAgICB9XG5cbiAgICBzdGF0aWMgZ2V0Q2FwaXRhbGl6ZUZpcnN0TGV0dGVyKGlucHV0U3RyaW5nOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gaW5wdXRTdHJpbmcgPyBpbnB1dFN0cmluZy5jaGFyQXQoMCkudG9VcHBlckNhc2UoKSArIGlucHV0U3RyaW5nLnNsaWNlKDEpIDogbnVsbDtcbiAgICB9XG5cbiAgICBnZXQgZm9ybWF0dGVkUHJpY2luZ0xpc3QoKTogc3RyaW5nW10ge1xuICAgICAgICBpZiAodGhpcy5wcmljaW5nICYmIHRoaXMucHJpY2luZy5wcmljZXMgJiYgdGhpcy5wcmljaW5nLnByaWNlcy5sZW5ndGgpIHtcbiAgICAgICAgICAgIGNvbnN0IGhhc0N1cnJlbmN5QW5kSXNOb3RVU0QgPSB0aGlzLnByaWNpbmcuY3VycmVuY3kgJiYgdGhpcy5wcmljaW5nLmN1cnJlbmN5ICE9PSAnVVNEJztcbiAgICAgICAgICAgIGNvbnN0IGN1cnJlbmN5U3RyID0gaGFzQ3VycmVuY3lBbmRJc05vdFVTRCA/IHRoaXMucHJpY2luZy5jdXJyZW5jeSA6ICcnO1xuICAgICAgICAgICAgY29uc3QgY3VycmVuY3lTeW1ib2wgPSBTZWxsYWJsZS5nZXRDdXJyZW5jeVN5bWJvbCh0aGlzLnByaWNpbmcuY3VycmVuY3kpO1xuXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5wcmljaW5nLnByaWNlcy5tYXAocHJpY2UgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IGZyZXF1ZW5jeVN0ciA9IHByaWNlLmZyZXF1ZW5jeSA/ICcvICcgKyBTZWxsYWJsZS5nZXRDYXBpdGFsaXplRmlyc3RMZXR0ZXIocHJpY2UuZnJlcXVlbmN5KSA6ICcnO1xuICAgICAgICAgICAgICAgIGNvbnN0IHJvdW5kZWRQcmljZSA9IChwcmljZS5wcmljZSAvIDEwMC4wKS50b0ZpeGVkKDIpO1xuICAgICAgICAgICAgICAgIGNvbnN0IHN0YXJ0aW5nQXRQcmVmaXggPSBwcmljZS5pc1N0YXJ0aW5nUHJpY2UgPyAnU3RhcnRpbmcgYXQgJyA6ICcnO1xuICAgICAgICAgICAgICAgIGNvbnN0IHByaWNlU3RyID0gYCR7c3RhcnRpbmdBdFByZWZpeH0ke2N1cnJlbmN5U3ltYm9sfSR7cm91bmRlZFByaWNlfSAke2N1cnJlbmN5U3RyfSAke2ZyZXF1ZW5jeVN0cn1gO1xuICAgICAgICAgICAgICAgIHJldHVybiAocHJpY2VTdHIudHJpbSgpLnJlcGxhY2UoL1xccysvZywgJyAnKSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBbJ0NvbnRhY3QgU2FsZXMnXTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGdldCBwcmljZVN0cmluZ3MoKTogc3RyaW5nW10ge1xuICAgICAgICBpZiAodGhpcy5zaG91bGRDb250YWN0U2FsZXMpIHtcbiAgICAgICAgICAgIHJldHVybiBbJ0NvbnRhY3QgU2FsZXMnXTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLmlzRnJlZSkge1xuICAgICAgICAgICAgcmV0dXJuIFsnRnJlZSddO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuZm9ybWF0dGVkUHJpY2luZ0xpc3Q7XG4gICAgfVxuXG4gICAgZ2V0IGZvcm1hdHRlZFdob2xlc2FsZVByaWNlKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLnByaWNlU3RyaW5ncy5qb2luKCcgKyAnKTtcbiAgICB9XG5cbiAgICBzdGF0aWMgZ2V0Q3VycmVuY3lTeW1ib2woY3VycmVuY3k6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgICAgIGxldCBjdXJyZW5jeVN5bWJvbCA9ICckJztcbiAgICAgICAgc3dpdGNoIChjdXJyZW5jeSkge1xuICAgICAgICAgICAgY2FzZSAnRVVSJzogY3VycmVuY3lTeW1ib2wgPSAnXFx1MjBBQyc7IGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnR0JQJzogY3VycmVuY3lTeW1ib2wgPSAnXFx1MDBBMyc7IGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnQ0hGJzogY3VycmVuY3lTeW1ib2wgPSAnRnInOyBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ0NOWSc6IGN1cnJlbmN5U3ltYm9sID0gJ1xcdTAwQTUnOyBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ0pQWSc6IGN1cnJlbmN5U3ltYm9sID0gJ1xcdTAwQTUnOyBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ0NaSyc6IGN1cnJlbmN5U3ltYm9sID0gJ0tcXHUwMTBkJzsgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdJTlInOiBjdXJyZW5jeVN5bWJvbCA9ICdcXHUyMEI5JzsgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdLSFInOiBjdXJyZW5jeVN5bWJvbCA9ICdcXHUxN0RCJzsgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdLUlcnOiBjdXJyZW5jeVN5bWJvbCA9ICdcXHUyMEE5JzsgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdOT0snOiBjdXJyZW5jeVN5bWJvbCA9ICdrcic7IGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnU0VLJzogY3VycmVuY3lTeW1ib2wgPSAna3InOyBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ1JVQic6IGN1cnJlbmN5U3ltYm9sID0gJ1xcdTIwQkQnOyBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ1RSWSc6IGN1cnJlbmN5U3ltYm9sID0gJ1xcdTIwQkEnOyBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ1pBUic6IGN1cnJlbmN5U3ltYm9sID0gJ1InOyBicmVhaztcbiAgICAgICAgICAgIGRlZmF1bHQ6IGN1cnJlbmN5U3ltYm9sID0gJyQnOyBicmVhaztcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gY3VycmVuY3lTeW1ib2w7XG4gICAgfVxuXG59XG4iXX0=