@open-tender/store
Version:
A library of hooks, reducers, utility functions, and types for use with Open Tender applications that utilize our in-store POS API
43 lines (42 loc) • 2.42 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.makeMenuSections = exports.flattenItems = exports.makeOptionGroups = exports.flattenCategories = void 0;
var tslib_1 = require("tslib");
var flattenCategories = function (categories) {
return categories.reduce(function (arr, i) {
var cats = tslib_1.__spreadArray([i], i.children, true);
return tslib_1.__spreadArray(tslib_1.__spreadArray([], arr, true), cats, true);
}, []);
};
exports.flattenCategories = flattenCategories;
var makeOptionGroups = function (groups) {
return groups.reduce(function (arr, i) {
var option_items = i.option_items.map(function (option) { return (tslib_1.__assign(tslib_1.__assign({}, option), { color: option.pos_display_color || i.pos_display_color })); });
var group = tslib_1.__assign(tslib_1.__assign({}, i), { option_items: option_items });
return tslib_1.__spreadArray(tslib_1.__spreadArray([], arr, true), [group], false);
}, []);
};
exports.makeOptionGroups = makeOptionGroups;
var flattenItems = function (categories) {
return categories.reduce(function (arr, i) {
var items = i.items.map(function (item) {
var _a;
return (tslib_1.__assign(tslib_1.__assign({}, item), { color: item.pos_display_color || ((_a = i.pos) === null || _a === void 0 ? void 0 : _a.color), option_groups: (0, exports.makeOptionGroups)(item.option_groups) }));
});
return tslib_1.__spreadArray(tslib_1.__spreadArray([], arr, true), items, true);
}, []);
};
exports.flattenItems = flattenItems;
var makeMenuSections = function (sections, categories) {
var flatCategories = (0, exports.flattenCategories)(categories);
return sections
.map(function (s) {
var cats = flatCategories
.filter(function (i) { return i.pos && i.pos.section_id === s.pos_section_id; })
.sort(function (a, b) { var _a, _b, _c, _d; return ((_b = (_a = a.pos) === null || _a === void 0 ? void 0 : _a.order) !== null && _b !== void 0 ? _b : 0) - ((_d = (_c = b.pos) === null || _c === void 0 ? void 0 : _c.order) !== null && _d !== void 0 ? _d : 0); });
var items = (0, exports.flattenItems)(cats);
return tslib_1.__assign(tslib_1.__assign({}, s), { items: items });
})
.filter(function (i) { return i.items.length; });
};
exports.makeMenuSections = makeMenuSections;