UNPKG

@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
"use strict"; 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;