@vendasta/store
Version:
Components and data for Store
66 lines • 6.06 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 {?} */
var itemMap = (combined || []).reduce(function (m, curr) {
m.set(getUniqueProductAddonId(curr), curr);
return m;
}, new Map());
/** @type {?} */
var combinedIdList = combined.map(getUniqueProductAddonId);
/** @type {?} */
var finalOrderedIds = combineProductOrderWithContainedProducts(order, combinedIdList);
/** @type {?} */
var orderedList = (/** @type {?} */ (finalOrderedIds.reduce(function (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(function (elem) { return 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AdmVuZGFzdGEvc3RvcmUvIiwic291cmNlcyI6WyJsaWIvcGFja2FnZS1kZXRhaWxzL3V0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUdBLE1BQU0sVUFBVSxzQkFBc0IsQ0FBQyxRQUE2QixFQUFFLEtBQWU7SUFDbkYsSUFBSSxDQUFDLEtBQUssSUFBSSxLQUFLLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtRQUNoQyxPQUFPLFFBQVEsSUFBSSxFQUFFLENBQUM7S0FDdkI7SUFDRCxJQUFJLENBQUMsUUFBUSxJQUFJLFFBQVEsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO1FBQ3RDLE9BQU8sRUFBRSxDQUFDO0tBQ1g7O1FBRUssT0FBTyxHQUFHLENBQUMsUUFBUSxJQUFJLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxVQUFDLENBQUMsRUFBRSxJQUFJO1FBQzlDLENBQUMsQ0FBQyxHQUFHLENBQUMsdUJBQXVCLENBQUMsSUFBSSxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDM0MsT0FBTyxDQUFDLENBQUM7SUFDWCxDQUFDLEVBQUUsSUFBSSxHQUFHLEVBQTZCLENBQUM7O1FBRWxDLGNBQWMsR0FBRyxRQUFRLENBQUMsR0FBRyxDQUFDLHVCQUF1QixDQUFDOztRQUN0RCxlQUFlLEdBQUcsd0NBQXdDLENBQUMsS0FBSyxFQUFFLGNBQWMsQ0FBQzs7UUFFakYsV0FBVyxHQUFHLG1CQUFBLGVBQWUsQ0FBQyxNQUFNLENBQUMsVUFBQyxLQUFLLEVBQUUsRUFBRTtRQUNuRCxLQUFLLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUM1QixPQUFPLEtBQUssQ0FBQztJQUNmLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBdUI7SUFFN0IsT0FBTyxXQUFXLENBQUMsTUFBTSxDQUFDLHNCQUFzQixDQUFDLENBQUM7QUFDcEQsQ0FBQzs7Ozs7OztBQUVELFNBQVMsc0JBQXNCLENBQUMsSUFBSSxFQUFFLEdBQUcsRUFBRSxHQUFHO0lBQzVDLE9BQU8sSUFBSSxJQUFJLEdBQUcsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssR0FBRyxDQUFDO0FBQzNDLENBQUM7Ozs7OztBQUVELE1BQU0sVUFBVSx3Q0FBd0MsQ0FBQyxZQUFzQixFQUFFLE9BQWlCO0lBQ2hHLElBQUksT0FBTyxJQUFJLElBQUksSUFBSSxPQUFPLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtRQUMzQyxPQUFPLEVBQUUsQ0FBQTtLQUNWO0lBQ0QsSUFBSSxDQUFDLFlBQVksSUFBSSxZQUFZLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtRQUM5QyxPQUFPLE9BQU8sQ0FBQyxNQUFNLENBQUMsc0JBQXNCLENBQUMsQ0FBQztLQUMvQztJQUNELE9BQU8sWUFBWTtTQUNoQixNQUFNLENBQUMsVUFBQSxJQUFJLElBQUksT0FBQSxPQUFPLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBMUIsQ0FBMEIsQ0FBQztTQUMxQyxNQUFNLENBQUMsT0FBTyxDQUFDO1NBQ2YsTUFBTSxDQUFDLHNCQUFzQixDQUFDLENBQUM7QUFDcEMsQ0FBQzs7Ozs7QUFFRCxNQUFNLFVBQVUsdUJBQXVCLENBQUMsS0FBVTtJQUNoRCxPQUFPLEtBQUssQ0FBQyxTQUFTLENBQUMsSUFBSSxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUM7QUFDaEQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFkZG9uIH0gZnJvbSAnQHZlbmRhc3RhL2NvcmUvc2hhcmVkJztcbmltcG9ydCB7IFByb2R1Y3QgfSBmcm9tICcuLi9zaGFyZWQvcHJvZHVjdCc7XG5cbmV4cG9ydCBmdW5jdGlvbiBvcmRlclByb2R1Y3RzQW5kQWRkb25zKGNvbWJpbmVkOiAoUHJvZHVjdCB8IEFkZG9uKVtdLCBvcmRlcjogc3RyaW5nW10pOiAoUHJvZHVjdCB8IEFkZG9uKVtdIHtcbiAgaWYgKCFvcmRlciB8fCBvcmRlci5sZW5ndGggPT09IDApIHtcbiAgICByZXR1cm4gY29tYmluZWQgfHwgW107XG4gIH1cbiAgaWYgKCFjb21iaW5lZCB8fCBjb21iaW5lZC5sZW5ndGggPT09IDApIHtcbiAgICByZXR1cm4gW107XG4gIH1cblxuICBjb25zdCBpdGVtTWFwID0gKGNvbWJpbmVkIHx8IFtdKS5yZWR1Y2UoKG0sIGN1cnIpID0+IHtcbiAgICBtLnNldChnZXRVbmlxdWVQcm9kdWN0QWRkb25JZChjdXJyKSwgY3Vycik7XG4gICAgcmV0dXJuIG07XG4gIH0sIG5ldyBNYXA8c3RyaW5nLCAoUHJvZHVjdCB8IEFkZG9uKT4oKSk7XG5cbiAgY29uc3QgY29tYmluZWRJZExpc3QgPSBjb21iaW5lZC5tYXAoZ2V0VW5pcXVlUHJvZHVjdEFkZG9uSWQpO1xuICBjb25zdCBmaW5hbE9yZGVyZWRJZHMgPSBjb21iaW5lUHJvZHVjdE9yZGVyV2l0aENvbnRhaW5lZFByb2R1Y3RzKG9yZGVyLCBjb21iaW5lZElkTGlzdCk7XG5cbiAgY29uc3Qgb3JkZXJlZExpc3QgPSBmaW5hbE9yZGVyZWRJZHMucmVkdWNlKChpdGVtcywgaWQpID0+IHtcbiAgICBpdGVtcy5wdXNoKGl0ZW1NYXAuZ2V0KGlkKSk7XG4gICAgcmV0dXJuIGl0ZW1zO1xuICB9LCBbXSkgYXMgKFByb2R1Y3QgfCBBZGRvbilbXTtcblxuICByZXR1cm4gb3JkZXJlZExpc3QuZmlsdGVyKGZpbHRlclVuaXF1ZUFuZERlZmluZWQpO1xufVxuXG5mdW5jdGlvbiBmaWx0ZXJVbmlxdWVBbmREZWZpbmVkKGVsZW0sIHBvcywgYXJyKSB7XG4gIHJldHVybiBlbGVtICYmIGFyci5pbmRleE9mKGVsZW0pID09PSBwb3M7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjb21iaW5lUHJvZHVjdE9yZGVyV2l0aENvbnRhaW5lZFByb2R1Y3RzKHByb2R1Y3RPcmRlcjogc3RyaW5nW10sIGl0ZW1JZHM6IHN0cmluZ1tdKTogc3RyaW5nW10ge1xuICBpZiAoaXRlbUlkcyA9PSBudWxsIHx8IGl0ZW1JZHMubGVuZ3RoID09PSAwKSB7XG4gICAgcmV0dXJuIFtdXG4gIH1cbiAgaWYgKCFwcm9kdWN0T3JkZXIgfHwgcHJvZHVjdE9yZGVyLmxlbmd0aCA9PT0gMCkge1xuICAgIHJldHVybiBpdGVtSWRzLmZpbHRlcihmaWx0ZXJVbmlxdWVBbmREZWZpbmVkKTtcbiAgfVxuICByZXR1cm4gcHJvZHVjdE9yZGVyXG4gICAgLmZpbHRlcihlbGVtID0+IGl0ZW1JZHMuaW5kZXhPZihlbGVtKSA+PSAwKVxuICAgIC5jb25jYXQoaXRlbUlkcylcbiAgICAuZmlsdGVyKGZpbHRlclVuaXF1ZUFuZERlZmluZWQpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0VW5pcXVlUHJvZHVjdEFkZG9uSWQodGhpbmc6IGFueSk6IHN0cmluZyB7XG4gIHJldHVybiB0aGluZ1snYWRkb25JZCddIHx8IHRoaW5nWydwcm9kdWN0SWQnXTtcbn1cbiJdfQ==