UNPKG

@vendasta/store

Version:

Components and data for Store

84 lines (83 loc) 3.35 kB
export var ActivationStatus; (function (ActivationStatus) { ActivationStatus[ActivationStatus["SUCCESS"] = 0] = "SUCCESS"; ActivationStatus[ActivationStatus["WARNING"] = 1] = "WARNING"; ActivationStatus[ActivationStatus["ERROR"] = 2] = "ERROR"; })(ActivationStatus || (ActivationStatus = {})); export function buildSalesPackages(packages, products) { if (!packages) { return []; } return packages.map(function (pkg) { return buildSalesPackageFromPackage(pkg, products); }); } function buildSalesPackageFromPackage(pkg, products) { if (!pkg) { return null; } var packageProducts = []; if (products && pkg.products) { var productsMap_1 = new Map(); products.forEach(function (product) { return productsMap_1.set(product.productId, product); }); pkg.products.forEach(function (productId) { var productMatch = productsMap_1.get(productId); if (productMatch) { packageProducts = packageProducts.concat(productMatch); } }); } var salesProducts = packageProducts.map(function (p) { return { productId: p.productId, name: p.name, tagline: p.tagline || null, iconUrl: p.iconUrl }; }); return { formattedPrices: pkg.formattedPricingList.join(', '), packageId: pkg.solution_id, name: pkg.name, icon: pkg.icon, productIds: pkg.products, products: salesProducts }; } export function addStatusesToSalesPackages(salesPackages, statuses) { if (!statuses || statuses.length === 0) { return salesPackages; } salesPackages.map(function (salesPackage) { var packageStatus = ActivationStatus.SUCCESS; salesPackage.products.forEach(function (productItem) { var productActivationStatus = statuses.filter(function (productStatus) { return productStatus.productId === productItem.productId; }); if (productActivationStatus.length > 0) { productItem.activationStatus = createStatusNotificationItemForProduct(productActivationStatus[0].status); if (packageStatus < productActivationStatus[0].status) { packageStatus = productActivationStatus[0].status; } } }); salesPackage.activationStatus = createStatusNotificationItemForPackage(packageStatus); }); return salesPackages; } function createStatusNotificationItemForProduct(status) { switch (status) { case ActivationStatus.SUCCESS: return { icon: 'check_circle', status: status, text: 'Activated' }; case ActivationStatus.WARNING: return { icon: 'warning', status: status, text: 'Already Activated' }; default: return { icon: 'error', status: status, text: 'Activation Errors' }; } } function createStatusNotificationItemForPackage(status) { switch (status) { case ActivationStatus.SUCCESS: return { icon: 'check_circle', status: status, text: 'Activated' }; case ActivationStatus.WARNING: return { icon: 'warning', status: status, text: 'Activation Warnings' }; default: return { icon: 'error', status: status, text: 'Activation Errors Occured' }; } }