@vendasta/store
Version:
Components and data for Store
66 lines • 6.04 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
/**
* @param {?} combined
* @param {?} order
* @return {?}
*/
export function orderProductsAndAddons(combined, order) {
if (!order || order.length === 0) {
return combined || [];
}
if (!combined || combined.length === 0) {
return [];
}
/** @type {?} */
const itemMap = (combined || []).reduce((m, curr) => {
m.set(getUniqueProductAddonId(curr), curr);
return m;
}, new Map());
/** @type {?} */
const combinedIdList = combined.map(getUniqueProductAddonId);
/** @type {?} */
const finalOrderedIds = combineProductOrderWithContainedProducts(order, combinedIdList);
/** @type {?} */
const orderedList = (/** @type {?} */ (finalOrderedIds.reduce((items, id) => {
items.push(itemMap.get(id));
return items;
}, [])));
return orderedList.filter(filterUniqueAndDefined);
}
/**
* @param {?} elem
* @param {?} pos
* @param {?} arr
* @return {?}
*/
function filterUniqueAndDefined(elem, pos, arr) {
return elem && arr.indexOf(elem) === pos;
}
/**
* @param {?} productOrder
* @param {?} itemIds
* @return {?}
*/
export function combineProductOrderWithContainedProducts(productOrder, itemIds) {
if (itemIds == null || itemIds.length === 0) {
return [];
}
if (!productOrder || productOrder.length === 0) {
return itemIds.filter(filterUniqueAndDefined);
}
return productOrder
.filter(elem => itemIds.indexOf(elem) >= 0)
.concat(itemIds)
.filter(filterUniqueAndDefined);
}
/**
* @param {?} thing
* @return {?}
*/
export function getUniqueProductAddonId(thing) {
return thing['addonId'] || thing['productId'];
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AdmVuZGFzdGEvc3RvcmUvIiwic291cmNlcyI6WyJsaWIvcGFja2FnZS1kZXRhaWxzL3V0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUdBLE1BQU0sVUFBVSxzQkFBc0IsQ0FBQyxRQUE2QixFQUFFLEtBQWU7SUFDbkYsSUFBSSxDQUFDLEtBQUssSUFBSSxLQUFLLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtRQUNoQyxPQUFPLFFBQVEsSUFBSSxFQUFFLENBQUM7S0FDdkI7SUFDRCxJQUFJLENBQUMsUUFBUSxJQUFJLFFBQVEsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO1FBQ3RDLE9BQU8sRUFBRSxDQUFDO0tBQ1g7O1VBRUssT0FBTyxHQUFHLENBQUMsUUFBUSxJQUFJLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRTtRQUNsRCxDQUFDLENBQUMsR0FBRyxDQUFDLHVCQUF1QixDQUFDLElBQUksQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQzNDLE9BQU8sQ0FBQyxDQUFDO0lBQ1gsQ0FBQyxFQUFFLElBQUksR0FBRyxFQUE2QixDQUFDOztVQUVsQyxjQUFjLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBQyx1QkFBdUIsQ0FBQzs7VUFDdEQsZUFBZSxHQUFHLHdDQUF3QyxDQUFDLEtBQUssRUFBRSxjQUFjLENBQUM7O1VBRWpGLFdBQVcsR0FBRyxtQkFBQSxlQUFlLENBQUMsTUFBTSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRSxFQUFFO1FBQ3ZELEtBQUssQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQzVCLE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUF1QjtJQUU3QixPQUFPLFdBQVcsQ0FBQyxNQUFNLENBQUMsc0JBQXNCLENBQUMsQ0FBQztBQUNwRCxDQUFDOzs7Ozs7O0FBRUQsU0FBUyxzQkFBc0IsQ0FBQyxJQUFJLEVBQUUsR0FBRyxFQUFFLEdBQUc7SUFDNUMsT0FBTyxJQUFJLElBQUksR0FBRyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxHQUFHLENBQUM7QUFDM0MsQ0FBQzs7Ozs7O0FBRUQsTUFBTSxVQUFVLHdDQUF3QyxDQUFDLFlBQXNCLEVBQUUsT0FBaUI7SUFDaEcsSUFBSSxPQUFPLElBQUksSUFBSSxJQUFJLE9BQU8sQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO1FBQzNDLE9BQU8sRUFBRSxDQUFBO0tBQ1Y7SUFDRCxJQUFJLENBQUMsWUFBWSxJQUFJLFlBQVksQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO1FBQzlDLE9BQU8sT0FBTyxDQUFDLE1BQU0sQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO0tBQy9DO0lBQ0QsT0FBTyxZQUFZO1NBQ2hCLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQzFDLE1BQU0sQ0FBQyxPQUFPLENBQUM7U0FDZixNQUFNLENBQUMsc0JBQXNCLENBQUMsQ0FBQztBQUNwQyxDQUFDOzs7OztBQUVELE1BQU0sVUFBVSx1QkFBdUIsQ0FBQyxLQUFVO0lBQ2hELE9BQU8sS0FBSyxDQUFDLFNBQVMsQ0FBQyxJQUFJLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQztBQUNoRCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWRkb24gfSBmcm9tICdAdmVuZGFzdGEvY29yZS9zaGFyZWQnO1xuaW1wb3J0IHsgUHJvZHVjdCB9IGZyb20gJy4uL3NoYXJlZC9wcm9kdWN0JztcblxuZXhwb3J0IGZ1bmN0aW9uIG9yZGVyUHJvZHVjdHNBbmRBZGRvbnMoY29tYmluZWQ6IChQcm9kdWN0IHwgQWRkb24pW10sIG9yZGVyOiBzdHJpbmdbXSk6IChQcm9kdWN0IHwgQWRkb24pW10ge1xuICBpZiAoIW9yZGVyIHx8IG9yZGVyLmxlbmd0aCA9PT0gMCkge1xuICAgIHJldHVybiBjb21iaW5lZCB8fCBbXTtcbiAgfVxuICBpZiAoIWNvbWJpbmVkIHx8IGNvbWJpbmVkLmxlbmd0aCA9PT0gMCkge1xuICAgIHJldHVybiBbXTtcbiAgfVxuXG4gIGNvbnN0IGl0ZW1NYXAgPSAoY29tYmluZWQgfHwgW10pLnJlZHVjZSgobSwgY3VycikgPT4ge1xuICAgIG0uc2V0KGdldFVuaXF1ZVByb2R1Y3RBZGRvbklkKGN1cnIpLCBjdXJyKTtcbiAgICByZXR1cm4gbTtcbiAgfSwgbmV3IE1hcDxzdHJpbmcsIChQcm9kdWN0IHwgQWRkb24pPigpKTtcblxuICBjb25zdCBjb21iaW5lZElkTGlzdCA9IGNvbWJpbmVkLm1hcChnZXRVbmlxdWVQcm9kdWN0QWRkb25JZCk7XG4gIGNvbnN0IGZpbmFsT3JkZXJlZElkcyA9IGNvbWJpbmVQcm9kdWN0T3JkZXJXaXRoQ29udGFpbmVkUHJvZHVjdHMob3JkZXIsIGNvbWJpbmVkSWRMaXN0KTtcblxuICBjb25zdCBvcmRlcmVkTGlzdCA9IGZpbmFsT3JkZXJlZElkcy5yZWR1Y2UoKGl0ZW1zLCBpZCkgPT4ge1xuICAgIGl0ZW1zLnB1c2goaXRlbU1hcC5nZXQoaWQpKTtcbiAgICByZXR1cm4gaXRlbXM7XG4gIH0sIFtdKSBhcyAoUHJvZHVjdCB8IEFkZG9uKVtdO1xuXG4gIHJldHVybiBvcmRlcmVkTGlzdC5maWx0ZXIoZmlsdGVyVW5pcXVlQW5kRGVmaW5lZCk7XG59XG5cbmZ1bmN0aW9uIGZpbHRlclVuaXF1ZUFuZERlZmluZWQoZWxlbSwgcG9zLCBhcnIpIHtcbiAgcmV0dXJuIGVsZW0gJiYgYXJyLmluZGV4T2YoZWxlbSkgPT09IHBvcztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNvbWJpbmVQcm9kdWN0T3JkZXJXaXRoQ29udGFpbmVkUHJvZHVjdHMocHJvZHVjdE9yZGVyOiBzdHJpbmdbXSwgaXRlbUlkczogc3RyaW5nW10pOiBzdHJpbmdbXSB7XG4gIGlmIChpdGVtSWRzID09IG51bGwgfHwgaXRlbUlkcy5sZW5ndGggPT09IDApIHtcbiAgICByZXR1cm4gW11cbiAgfVxuICBpZiAoIXByb2R1Y3RPcmRlciB8fCBwcm9kdWN0T3JkZXIubGVuZ3RoID09PSAwKSB7XG4gICAgcmV0dXJuIGl0ZW1JZHMuZmlsdGVyKGZpbHRlclVuaXF1ZUFuZERlZmluZWQpO1xuICB9XG4gIHJldHVybiBwcm9kdWN0T3JkZXJcbiAgICAuZmlsdGVyKGVsZW0gPT4gaXRlbUlkcy5pbmRleE9mKGVsZW0pID49IDApXG4gICAgLmNvbmNhdChpdGVtSWRzKVxuICAgIC5maWx0ZXIoZmlsdGVyVW5pcXVlQW5kRGVmaW5lZCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRVbmlxdWVQcm9kdWN0QWRkb25JZCh0aGluZzogYW55KTogc3RyaW5nIHtcbiAgcmV0dXJuIHRoaW5nWydhZGRvbklkJ10gfHwgdGhpbmdbJ3Byb2R1Y3RJZCddO1xufVxuIl19