@vendasta/store
Version:
Components and data for Store
80 lines • 10.4 kB
JavaScript
import { Currency, Frequency } from '@vendasta/billing';
export function hasCommitment(commitment, frequency) {
if (frequency !== Frequency.OneTime &&
frequency !== 'One Time' &&
commitment &&
!(commitment.initial === 1 && commitment.recurring === 1)) {
return true;
}
else {
return false;
}
}
export function formatPrice(currency, value) {
value = value || 0;
let priceString = (value / 100).toFixed(2);
if (currency === Currency.CAD || currency === Currency.USD || currency === Currency.AUD) {
priceString = '$' + priceString;
}
return priceString;
}
export function formatCurrencyAndFrequencyString(currency, frequency) {
let currencyString = '';
if (currency !== Currency.USD) {
currencyString = currency;
}
let frequencyString = '';
switch (frequency) {
case 'Monthly':
case Frequency.Monthly:
frequencyString = 'per month';
break;
case 'Yearly':
case Frequency.Yearly:
frequencyString = 'per year';
break;
}
if (currencyString && frequencyString) {
return `${currencyString} ${frequencyString}`;
}
else if (currencyString && !frequencyString) {
return `${currencyString}`;
}
return frequencyString;
}
export function formatCommitmentString(commitment, frequency) {
let initialCommitment = commitment.initial;
let recurringCommitment = commitment.recurring;
let formattedInitialFrequency = '';
let formattedRecurringFrequency = '';
if (frequency === 'Monthly' || frequency === Frequency.Monthly) {
formattedInitialFrequency = getFormattedMonthString(initialCommitment);
formattedRecurringFrequency = getFormattedMonthString(recurringCommitment);
initialCommitment = checkForTwelveMonthsToYear(commitment.initial);
recurringCommitment = checkForTwelveMonthsToYear(commitment.recurring);
}
else if (frequency === 'Yearly' || frequency === Frequency.Yearly) {
formattedInitialFrequency = getFormattedYearString(initialCommitment);
formattedRecurringFrequency = getFormattedYearString(recurringCommitment);
}
else {
return '';
}
if (commitment.recurring > 0) {
return `${initialCommitment} ${formattedInitialFrequency} initial commitment, ${recurringCommitment} ${formattedRecurringFrequency} recurring commitment`;
}
return `${initialCommitment} ${formattedInitialFrequency} commitment`;
}
function getFormattedMonthString(commitmentLength) {
if (commitmentLength === 12) {
return 'year';
}
return commitmentLength > 1 ? 'months' : 'month';
}
function getFormattedYearString(commitmentLength) {
return commitmentLength > 1 ? 'years' : 'year';
}
function checkForTwelveMonthsToYear(commitmentLength) {
return commitmentLength === 12 ? 1 : commitmentLength;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZHVjdC1pbmZvLXN0cmluZy1mb3JtYXR0aW5nLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9zdG9yZS9zcmMvbGliL3Byb2R1Y3QtZGV0YWlscy12Mi9wcm9kdWN0LWluZm8tc3RyaW5nLWZvcm1hdHRpbmcvcHJvZHVjdC1pbmZvLXN0cmluZy1mb3JtYXR0aW5nLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFeEQsTUFBTSxVQUFVLGFBQWEsQ0FBQyxVQUFVLEVBQUUsU0FBUztJQUNqRCxJQUNFLFNBQVMsS0FBSyxTQUFTLENBQUMsT0FBTztRQUMvQixTQUFTLEtBQUssVUFBVTtRQUN4QixVQUFVO1FBQ1YsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxPQUFPLEtBQUssQ0FBQyxJQUFJLFVBQVUsQ0FBQyxTQUFTLEtBQUssQ0FBQyxDQUFDLEVBQ3pEO1FBQ0EsT0FBTyxJQUFJLENBQUM7S0FDYjtTQUFNO1FBQ0wsT0FBTyxLQUFLLENBQUM7S0FDZDtBQUNILENBQUM7QUFFRCxNQUFNLFVBQVUsV0FBVyxDQUFDLFFBQVEsRUFBRSxLQUFhO0lBQ2pELEtBQUssR0FBRyxLQUFLLElBQUksQ0FBQyxDQUFDO0lBQ25CLElBQUksV0FBVyxHQUFHLENBQUMsS0FBSyxHQUFHLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUMzQyxJQUFJLFFBQVEsS0FBSyxRQUFRLENBQUMsR0FBRyxJQUFJLFFBQVEsS0FBSyxRQUFRLENBQUMsR0FBRyxJQUFJLFFBQVEsS0FBSyxRQUFRLENBQUMsR0FBRyxFQUFFO1FBQ3ZGLFdBQVcsR0FBRyxHQUFHLEdBQUcsV0FBVyxDQUFDO0tBQ2pDO0lBRUQsT0FBTyxXQUFXLENBQUM7QUFDckIsQ0FBQztBQUVELE1BQU0sVUFBVSxnQ0FBZ0MsQ0FBQyxRQUFRLEVB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ZW5kYXN0YS9iaWxsaW5nJztcblxuZXhwb3J0IGZ1bmN0aW9uIGhhc0NvbW1pdG1lbnQoY29tbWl0bWVudCwgZnJlcXVlbmN5KTogYm9vbGVhbiB7XG4gIGlmIChcbiAgICBmcmVxdWVuY3kgIT09IEZyZXF1ZW5jeS5PbmVUaW1lICYmXG4gICAgZnJlcXVlbmN5ICE9PSAnT25lIFRpbWUnICYmXG4gICAgY29tbWl0bWVudCAmJlxuICAgICEoY29tbWl0bWVudC5pbml0aWFsID09PSAxICYmIGNvbW1pdG1lbnQucmVjdXJyaW5nID09PSAxKVxuICApIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGZvcm1hdFByaWNlKGN1cnJlbmN5LCB2YWx1ZTogbnVtYmVyKTogc3RyaW5nIHtcbiAgdmFsdWUgPSB2YWx1ZSB8fCAwO1xuICBsZXQgcHJpY2VTdHJpbmcgPSAodmFsdWUgLyAxMDApLnRvRml4ZWQoMik7XG4gIGlmIChjdXJyZW5jeSA9PT0gQ3VycmVuY3kuQ0FEIHx8IGN1cnJlbmN5ID09PSBDdXJyZW5jeS5VU0QgfHwgY3VycmVuY3kgPT09IEN1cnJlbmN5LkFVRCkge1xuICAgIHByaWNlU3RyaW5nID0gJyQnICsgcHJpY2VTdHJpbmc7XG4gIH1cblxuICByZXR1cm4gcHJpY2VTdHJpbmc7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBmb3JtYXRDdXJyZW5jeUFuZEZyZXF1ZW5jeVN0cmluZyhjdXJyZW5jeSwgZnJlcXVlbmN5KTogc3RyaW5nIHtcbiAgbGV0IGN1cnJlbmN5U3RyaW5nID0gJyc7XG4gIGlmIChjdXJyZW5jeSAhPT0gQ3VycmVuY3kuVVNEKSB7XG4gICAgY3VycmVuY3lTdHJpbmcgPSBjdXJyZW5jeTtcbiAgfVxuXG4gIGxldCBmcmVxdWVuY3lTdHJpbmcgPSAnJztcbiAgc3dpdGNoIChmcmVxdWVuY3kpIHtcbiAgICBjYXNlICdNb250aGx5JzpcbiAgICBjYXNlIEZyZXF1ZW5jeS5Nb250aGx5OlxuICAgICAgZnJlcXVlbmN5U3RyaW5nID0gJ3BlciBtb250aCc7XG4gICAgICBicmVhaztcbiAgICBjYXNlICdZZWFybHknOlxuICAgIGNhc2UgRnJlcXVlbmN5LlllYXJseTpcbiAgICAgIGZyZXF1ZW5jeVN0cmluZyA9ICdwZXIgeWVhcic7XG4gICAgICBicmVhaztcbiAgfVxuXG4gIGlmIChjdXJyZW5jeVN0cmluZyAmJiBmcmVxdWVuY3lTdHJpbmcpIHtcbiAgICByZXR1cm4gYCR7Y3VycmVuY3lTdHJpbmd9ICR7ZnJlcXVlbmN5U3RyaW5nfWA7XG4gIH0gZWxzZSBpZiAoY3VycmVuY3lTdHJpbmcgJiYgIWZyZXF1ZW5jeVN0cmluZykge1xuICAgIHJldHVybiBgJHtjdXJyZW5jeVN0cmluZ31gO1xuICB9XG4gIHJldHVybiBmcmVxdWVuY3lTdHJpbmc7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBmb3JtYXRDb21taXRtZW50U3RyaW5nKGNvbW1pdG1lbnQsIGZyZXF1ZW5jeSk6IHN0cmluZyB7XG4gIGxldCBpbml0aWFsQ29tbWl0bWVudCA9IGNvbW1pdG1lbnQuaW5pdGlhbDtcbiAgbGV0IHJlY3VycmluZ0NvbW1pdG1lbnQgPSBjb21taXRtZW50LnJlY3VycmluZztcbiAgbGV0IGZvcm1hdHRlZEluaXRpYWxGcmVxdWVuY3kgPSAnJztcbiAgbGV0IGZvcm1hdHRlZFJlY3VycmluZ0ZyZXF1ZW5jeSA9ICcnO1xuICBpZiAoZnJlcXVlbmN5ID09PSAnTW9udGhseScgfHwgZnJlcXVlbmN5ID09PSBGcmVxdWVuY3kuTW9udGhseSkge1xuICAgIGZvcm1hdHRlZEluaXRpYWxGcmVxdWVuY3kgPSBnZXRGb3JtYXR0ZWRNb250aFN0cmluZyhpbml0aWFsQ29tbWl0bWVudCk7XG4gICAgZm9ybWF0dGVkUmVjdXJyaW5nRnJlcXVlbmN5ID0gZ2V0Rm9ybWF0dGVkTW9udGhTdHJpbmcocmVjdXJyaW5nQ29tbWl0bWVudCk7XG4gICAgaW5pdGlhbENvbW1pdG1lbnQgPSBjaGVja0ZvclR3ZWx2ZU1vbnRoc1RvWWVhcihjb21taXRtZW50LmluaXRpYWwpO1xuICAgIHJlY3VycmluZ0NvbW1pdG1lbnQgPSBjaGVja0ZvclR3ZWx2ZU1vbnRoc1RvWWVhcihjb21taXRtZW50LnJlY3VycmluZyk7XG4gIH0gZWxzZSBpZiAoZnJlcXVlbmN5ID09PSAnWWVhcmx5JyB8fCBmcmVxdWVuY3kgPT09IEZyZXF1ZW5jeS5ZZWFybHkpIHtcbiAgICBmb3JtYXR0ZWRJbml0aWFsRnJlcXVlbmN5ID0gZ2V0Rm9ybWF0dGVkWWVhclN0cmluZyhpbml0aWFsQ29tbWl0bWVudCk7XG4gICAgZm9ybWF0dGVkUmVjdXJyaW5nRnJlcXVlbmN5ID0gZ2V0Rm9ybWF0dGVkWWVhclN0cmluZyhyZWN1cnJpbmdDb21taXRtZW50KTtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gJyc7XG4gIH1cblxuICBpZiAoY29tbWl0bWVudC5yZWN1cnJpbmcgPiAwKSB7XG4gICAgcmV0dXJuIGAke2luaXRpYWxDb21taXRtZW50fSAke2Zvcm1hdHRlZEluaXRpYWxGcmVxdWVuY3l9IGluaXRpYWwgY29tbWl0bWVudCwgJHtyZWN1cnJpbmdDb21taXRtZW50fSAke2Zvcm1hdHRlZFJlY3VycmluZ0ZyZXF1ZW5jeX0gcmVjdXJyaW5nIGNvbW1pdG1lbnRgO1xuICB9XG4gIHJldHVybiBgJHtpbml0aWFsQ29tbWl0bWVudH0gJHtmb3JtYXR0ZWRJbml0aWFsRnJlcXVlbmN5fSBjb21taXRtZW50YDtcbn1cblxuZnVuY3Rpb24gZ2V0Rm9ybWF0dGVkTW9udGhTdHJpbmcoY29tbWl0bWVudExlbmd0aCk6IHN0cmluZyB7XG4gIGlmIChjb21taXRtZW50TGVuZ3RoID09PSAxMikge1xuICAgIHJldHVybiAneWVhcic7XG4gIH1cbiAgcmV0dXJuIGNvbW1pdG1lbnRMZW5ndGggPiAxID8gJ21vbnRocycgOiAnbW9udGgnO1xufVxuXG5mdW5jdGlvbiBnZXRGb3JtYXR0ZWRZZWFyU3RyaW5nKGNvbW1pdG1lbnRMZW5ndGgpOiBzdHJpbmcge1xuICByZXR1cm4gY29tbWl0bWVudExlbmd0aCA+IDEgPyAneWVhcnMnIDogJ3llYXInO1xufVxuXG5mdW5jdGlvbiBjaGVja0ZvclR3ZWx2ZU1vbnRoc1RvWWVhcihjb21taXRtZW50TGVuZ3RoKTogbnVtYmVyIHtcbiAgcmV0dXJuIGNvbW1pdG1lbnRMZW5ndGggPT09IDEyID8gMSA6IGNvbW1pdG1lbnRMZW5ndGg7XG59XG4iXX0=