UNPKG

@vendasta/store

Version:

Components and data for Store

140 lines (139 loc) 4.89 kB
var Package = /** @class */ (function () { function Package() { } Package.fromApi = function (data) { var newPackage = new Package(); if (!data.pricing && data.selling_price) { data.pricing = { currency: data.currency, prices: [{ price: data.selling_price * 100, frequency: data.billingFrequency }] }; } Object.assign(newPackage, data); if (!newPackage.name) { newPackage.name = 'Untitled'; } if (data.created) { newPackage.createdDate = new Date(data.created); } if (data.updated) { newPackage.updatedDate = new Date(data.updated); } return newPackage; }; Object.defineProperty(Package.prototype, "isPackageFree", { get: function () { return this.pricing && this.pricing.prices ? this.pricing.prices.some(function (p) { return p.price === 0; }) : null; }, enumerable: true, configurable: true }); Object.defineProperty(Package.prototype, "shouldContactSales", { get: function () { return this.pricing && this.pricing.prices ? this.pricing.prices.some(function (p) { return p.price === null; }) || this.pricing.prices.length === 0 : true; }, enumerable: true, configurable: true }); Object.defineProperty(Package.prototype, "formattedPricingList", { get: function () { if (this.pricing && this.pricing.prices && this.pricing.prices.length) { var hasCurrencyAndIsNotUSD = this.pricing.currency && this.pricing.currency !== 'USD'; var currencyStr_1 = hasCurrencyAndIsNotUSD ? this.pricing.currency : ''; var currencySymbol_1 = Package.getCurrencySymbol(this.pricing.currency); return this.pricing.prices.map(function (price) { var frequencyStr = price.frequency ? '/ ' + Package.getCapitalizeFirstLetter(price.frequency) : ''; var roundedPrice = (price.price / 100.0).toFixed(2); var priceStr = "" + currencySymbol_1 + roundedPrice + " " + currencyStr_1 + " " + frequencyStr; return (priceStr.trim().replace(/\s+/g, ' ')); }); } else { return ['Contact Sales']; } }, enumerable: true, configurable: true }); Object.defineProperty(Package.prototype, "priceStrings", { get: function () { if (this.shouldContactSales) { return ['Contact Sales']; } if (this.isPackageFree) { return ['Free']; } return this.formattedPricingList; }, enumerable: true, configurable: true }); Object.defineProperty(Package.prototype, "formattedWholesalePrice", { get: function () { return this.priceStrings.join(' + '); }, enumerable: true, configurable: true }); Package.getCapitalizeFirstLetter = function (inputString) { return inputString ? inputString.charAt(0).toUpperCase() + inputString.slice(1) : null; }; Package.getCurrencySymbol = function (currency) { var 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; }; return Package; }()); export { Package };