@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
568 lines (567 loc) • 25.9 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.makeHeaderStatusColor = exports.makeOrderPrepTimes = exports.makeBucketColor = exports.displayCounts = exports.makeDisplayCounts = exports.makeTicketGroups = exports.makeModifiersMetadataLookup = exports.makeCartLookup = exports.makeItemTypesMap = exports.makeItemTypeSettings = exports.makeTicketCounts = exports.makeOrderBucketsCounts = exports.makeOrderBuckets = exports.makeKdsStationCounts = exports.makeKdsStationCount = exports.makeCurrentAndFutureOrders = exports.makeKdsCounts = exports.makeItemCounts = exports.makeOrderItemSignature = exports.makeOrdersForPrepStation = exports.filterOrdersToday = exports.filterOrdersByPrepType = exports.filterOrdersByItemType = exports.makeOrdersOfType = exports.makeCompletedOrders = exports.makeIncompleteOrders = exports.makeFutureOrders = exports.makeCurrentOrders = exports.makeKdsOrders = exports.makeKdsOrder = exports.isFutureOrder = exports.isCompleted = exports.notCompleted = exports.isDone = exports.notDone = exports.makeOrdersParams = exports.prepStatus = void 0;
var tslib_1 = require("tslib");
var utils_1 = require("@open-tender/utils");
var utils_2 = require("@open-tender/utils");
exports.prepStatus = {
TODO: 'TODO',
IN_PROGRESS: 'IN_PROGRESS',
DONE: 'DONE',
COMPLETED: 'COMPLETED',
FULFILLED: 'FULFILLED'
};
var makeOrdersParams = function (_a) {
var businessDate = _a.businessDate, receiptType = _a.receiptType, channelType = _a.channelType, prepStatus = _a.prepStatus, search = _a.search, sortBy = _a.sortBy, sortDirection = _a.sortDirection, parentOrderId = _a.parentOrderId;
var args = {};
if (businessDate) {
args = tslib_1.__assign(tslib_1.__assign({}, args), { business_date: businessDate });
}
if (receiptType) {
args = tslib_1.__assign(tslib_1.__assign({}, args), { receipt_type: receiptType });
}
if (channelType) {
args = tslib_1.__assign(tslib_1.__assign({}, args), { channel_type: channelType.join(',') });
}
if (prepStatus) {
args = tslib_1.__assign(tslib_1.__assign({}, args), { prep_status: prepStatus.join(',') });
}
if (search) {
args = tslib_1.__assign(tslib_1.__assign({}, args), { search: search });
}
if (sortBy) {
args = tslib_1.__assign(tslib_1.__assign({}, args), { sort_by: sortBy });
}
if (sortDirection) {
args = tslib_1.__assign(tslib_1.__assign({}, args), { sort_direction: sortDirection });
}
if (parentOrderId) {
args = tslib_1.__assign(tslib_1.__assign({}, args), { parent_receipt_uuid: parentOrderId });
}
return args;
};
exports.makeOrdersParams = makeOrdersParams;
var notDone = function (prep_status) {
var notDoneStates = [exports.prepStatus.TODO, exports.prepStatus.IN_PROGRESS];
return notDoneStates.includes(prep_status);
};
exports.notDone = notDone;
var isDone = function (prep_status) {
var doneStates = [
exports.prepStatus.DONE,
exports.prepStatus.COMPLETED,
exports.prepStatus.FULFILLED
];
return doneStates.includes(prep_status);
};
exports.isDone = isDone;
var notCompleted = function (prep_status) {
var notCompletedStates = [
exports.prepStatus.TODO,
exports.prepStatus.IN_PROGRESS,
exports.prepStatus.DONE
];
return notCompletedStates.includes(prep_status);
};
exports.notCompleted = notCompleted;
var isCompleted = function (prep_status) {
var completeStates = [exports.prepStatus.COMPLETED, exports.prepStatus.FULFILLED];
return completeStates.includes(prep_status);
};
exports.isCompleted = isCompleted;
var isFutureOrder = function (order) {
var timezone = order.timezone, order_prep = order.order_prep;
if (!order_prep)
return false;
var fire_at = order_prep.fire_at, prep_status = order_prep.prep_status;
var tz = utils_2.timezoneMap[timezone];
var fireDate = fire_at ? (0, utils_1.isoToDate)(fire_at, tz) : null;
var currentDate = (0, utils_2.currentLocalDate)(tz);
return (0, exports.notDone)(prep_status) && fireDate && fireDate > currentDate;
};
exports.isFutureOrder = isFutureOrder;
var makeKdsOrder = function (order) {
return order;
};
exports.makeKdsOrder = makeKdsOrder;
var makeKdsOrders = function (orders) {
return orders.filter(function (i) { var _a; return ((_a = i.order_prep) === null || _a === void 0 ? void 0 : _a.expected_at) && i.order_prep.fire_at && i.tickets; });
};
exports.makeKdsOrders = makeKdsOrders;
var makeCurrentOrders = function (orders) {
return orders.filter(function (i) {
var tz = utils_2.timezoneMap[i.timezone];
if (!i.order_prep)
return false;
var _a = i.order_prep, fire_at = _a.fire_at, prep_status = _a.prep_status;
if (!fire_at)
return false;
var fireDate = (0, utils_1.isoToDate)(fire_at, tz);
var currentDate = (0, utils_2.currentLocalDate)(tz);
return (0, exports.notCompleted)(prep_status) && fireDate < currentDate;
});
};
exports.makeCurrentOrders = makeCurrentOrders;
var makeFutureOrders = function (orders) {
return orders.filter(function (i) {
var tz = utils_2.timezoneMap[i.timezone];
if (!i.order_prep)
return false;
var _a = i.order_prep, fire_at = _a.fire_at, prep_status = _a.prep_status;
if (!fire_at)
return false;
var fireDate = (0, utils_1.isoToDate)(fire_at, tz);
var currentDate = (0, utils_2.currentLocalDate)(tz);
return (0, exports.notDone)(prep_status) && fireDate > currentDate;
});
};
exports.makeFutureOrders = makeFutureOrders;
var makeIncompleteOrders = function (orders) {
return orders.filter(function (i) {
var tz = utils_2.timezoneMap[i.timezone];
if (!i.order_prep)
return false;
var _a = i.order_prep, fire_at = _a.fire_at, prep_status = _a.prep_status;
if (!fire_at)
return false;
var fireDate = (0, utils_1.isoToDate)(fire_at, tz);
return (0, exports.notCompleted)(prep_status) && fireDate;
});
};
exports.makeIncompleteOrders = makeIncompleteOrders;
var makeCompletedOrders = function (orders) {
return orders.filter(function (i) {
var tz = utils_2.timezoneMap[i.timezone];
if (!i.order_prep)
return false;
var _a = i.order_prep, fire_at = _a.fire_at, prep_status = _a.prep_status;
if (!fire_at)
return false;
var fireDate = (0, utils_1.isoToDate)(fire_at, tz);
var fireDateStr = (0, utils_2.formatDate)(fireDate, 'yyyy-MM-dd');
var currentDate = (0, utils_2.currentLocalDate)(tz);
var currentDateStr = (0, utils_2.formatDate)(currentDate, 'yyyy-MM-dd');
return (0, exports.isCompleted)(prep_status) && fireDateStr === currentDateStr;
});
};
exports.makeCompletedOrders = makeCompletedOrders;
var makeOrdersOfType = function (orders, orderType) {
switch (orderType) {
case 'FUTURE':
return (0, exports.makeFutureOrders)(orders);
case 'INCOMPLETE':
return (0, exports.makeIncompleteOrders)(orders);
case 'COMPLETED':
return (0, exports.makeCompletedOrders)(orders);
default:
return (0, exports.makeCurrentOrders)(orders);
}
};
exports.makeOrdersOfType = makeOrdersOfType;
var filterOrdersByItemType = function (orders, itemTypeIds) {
if (!itemTypeIds)
return orders;
return orders
.reduce(function (arr, i) {
var _a;
var tickets = (_a = i.tickets) === null || _a === void 0 ? void 0 : _a.filter(function (t) {
return itemTypeIds.includes(t.item_type_id);
});
return tslib_1.__spreadArray(tslib_1.__spreadArray([], arr, true), [tslib_1.__assign(tslib_1.__assign({}, i), { tickets: tickets })], false);
}, [])
.filter(function (i) { var _a; return (_a = i.tickets) === null || _a === void 0 ? void 0 : _a.length; });
};
exports.filterOrdersByItemType = filterOrdersByItemType;
var filterOrdersByPrepType = function (orders, prepType) {
var statusFunc = prepType === 'ASSEMBLY' ? exports.notDone : exports.notCompleted;
return orders
.reduce(function (arr, i) {
var _a;
var tickets = (_a = i.tickets) === null || _a === void 0 ? void 0 : _a.filter(function (t) { return statusFunc(t.ticket_status); });
return tslib_1.__spreadArray(tslib_1.__spreadArray([], arr, true), [tslib_1.__assign(tslib_1.__assign({}, i), { tickets: tickets })], false);
}, [])
.filter(function (i) { var _a; return (_a = i.tickets) === null || _a === void 0 ? void 0 : _a.length; });
};
exports.filterOrdersByPrepType = filterOrdersByPrepType;
var filterOrdersToday = function (orders) {
if (!orders.length)
return [];
var tz = utils_2.timezoneMap[orders[0].timezone];
var today = (0, utils_2.currentLocalDateStr)(tz);
return orders.filter(function (i) {
if (i.requested_at === 'asap')
return true;
var requesteDateStr = (0, utils_1.isoToDateStr)(i.requested_at, tz, utils_2.DATE);
return today === requesteDateStr;
});
};
exports.filterOrdersToday = filterOrdersToday;
var makeOrdersForPrepStation = function (orders, prepStation, orderType) {
var item_type_ids = prepStation.item_type_ids, prep_type = prepStation.prep_type, expo_done_only = prepStation.expo_done_only;
var ordersOfType = (0, exports.makeOrdersOfType)(orders, orderType);
if (orderType === 'COMPLETED') {
return (0, exports.filterOrdersByItemType)(ordersOfType, item_type_ids);
}
var filteredOrders = prep_type === 'ASSEMBLY'
? ordersOfType.filter(function (i) {
return i.order_prep ? (0, exports.notDone)(i.order_prep.prep_status) : false;
})
: ordersOfType.filter(function (i) {
return !i.order_prep
? false
: expo_done_only
? i.order_prep.prep_status === 'DONE'
: (0, exports.notCompleted)(i.order_prep.prep_status);
});
var filtered = (0, exports.filterOrdersByItemType)(filteredOrders, item_type_ids);
return prep_type === 'EXPO'
? filtered
: filtered.filter(function (i) { var _a; return (_a = i.tickets) === null || _a === void 0 ? void 0 : _a.filter(function (t) { return (0, exports.notDone)(t.ticket_status); }).length; });
};
exports.makeOrdersForPrepStation = makeOrdersForPrepStation;
var makeOrderItemSignature = function (item, withNotes) {
if (withNotes === void 0) { withNotes = false; }
var groups = item.groups || [];
var optionIds = groups
.reduce(function (arr, group) {
var ids = group.options
.filter(function (o) { return o.quantity > 0; })
.reduce(function (optionsArr, o) {
var optionArr = new Array(o.quantity);
optionArr.fill(o.id);
return tslib_1.__spreadArray(tslib_1.__spreadArray([], optionsArr, true), optionArr, true);
}, []);
return tslib_1.__spreadArray(tslib_1.__spreadArray([], arr, true), ids, true);
}, [])
.sort(function (a, b) { return a - b; });
var itemIds = tslib_1.__spreadArray([item.id], optionIds, true).join('.');
return withNotes ? "".concat(itemIds, ".").concat(item.made_for, ".").concat(item.notes) : itemIds;
};
exports.makeOrderItemSignature = makeOrderItemSignature;
var makeItemCounts = function (orders, withMods) {
if (withMods === void 0) { withMods = true; }
return orders.reduce(function (obj, order) {
order.cart.forEach(function (item) {
var itemId = withMods ? (0, exports.makeOrderItemSignature)(item) : "".concat(item.id);
var existing = obj[itemId];
obj[itemId] = existing
? { item: item, count: (existing.count += item.quantity) }
: { item: item, count: item.quantity };
});
return obj;
}, {});
};
exports.makeItemCounts = makeItemCounts;
var updateCounts = function (counts, ticketCounts) {
// console.log('BEFORE', counts, ticketCounts)
var updated = Object.entries(counts).reduce(function (obj, _a) {
var _b;
var key = _a[0], count = _a[1];
return tslib_1.__assign(tslib_1.__assign({}, obj), (_b = {}, _b[key] = count + (ticketCounts[key] || 0), _b));
}, {});
updated.Orders = counts.Orders + 1;
// console.log('AFTER', updated)
return updated;
};
var makeKdsCounts = function (itemTypes, orders) {
if (!itemTypes || !orders) {
return { current: null, future: null, qa: null };
}
console.time('makeKdsCounts');
var itemTypeCounts = itemTypes
.filter(function (i) { return i.is_default; })
.reduce(function (obj, i) {
var _a;
return (tslib_1.__assign(tslib_1.__assign({}, obj), (_a = {}, _a[i.name] = 0, _a)));
}, {});
var current = tslib_1.__assign({ Orders: 0 }, itemTypeCounts);
var qa = tslib_1.__assign({ Orders: 0 }, itemTypeCounts);
var future = tslib_1.__assign({ Orders: 0 }, itemTypeCounts);
var openOrders = orders.filter(function (i) { return i.order_prep && (0, exports.notCompleted)(i.order_prep.prep_status); });
openOrders.forEach(function (order) {
if (!order.order_prep || !order.tickets)
return;
var _a = order.order_prep, fire_at = _a.fire_at, prep_status = _a.prep_status;
var tz = utils_2.timezoneMap[order.timezone];
var fireDate = fire_at ? (0, utils_1.isoToDate)(fire_at, tz) : null;
var currentDate = (0, utils_2.currentLocalDate)(tz);
var isDone = prep_status === exports.prepStatus.DONE;
var isCurrent = fireDate ? fireDate < currentDate : false;
var ticketCounts = order.tickets.reduce(function (obj, ticket) {
var _a;
var count = obj[ticket.item_type_name] || 0;
return tslib_1.__assign(tslib_1.__assign({}, obj), (_a = {}, _a[ticket.item_type_name] = count + ticket.item_nos.length, _a));
}, {});
if (isDone) {
qa = updateCounts(qa, ticketCounts);
}
else if (isCurrent) {
current = updateCounts(current, ticketCounts);
}
else {
future = updateCounts(future, ticketCounts);
}
});
console.timeEnd('makeKdsCounts');
return { current: current, future: future, qa: qa };
};
exports.makeKdsCounts = makeKdsCounts;
var makeCurrentAndFutureOrders = function (orders) {
var current = [];
var future = [];
orders.forEach(function (i) {
var tz = utils_2.timezoneMap[i.timezone];
if (!i.order_prep)
return;
var _a = i.order_prep, fire_at = _a.fire_at, prep_status = _a.prep_status;
var fireDate = fire_at ? (0, utils_1.isoToDate)(fire_at, tz) : null;
if ((0, exports.isCompleted)(prep_status) || !fireDate)
return;
var currentDate = (0, utils_2.currentLocalDate)(tz);
if (fireDate < currentDate) {
current.push(i);
}
else if (fireDate > currentDate) {
future.push(i);
}
});
return { current: current, future: future };
};
exports.makeCurrentAndFutureOrders = makeCurrentAndFutureOrders;
var makeKdsStationCount = function (orders, itemTypeIds, prepType) {
var byItemType = (0, exports.filterOrdersByItemType)(orders, itemTypeIds);
var filtered = (0, exports.filterOrdersByPrepType)(byItemType, prepType);
var tickets = filtered.reduce(function (arr, i) { return tslib_1.__spreadArray(tslib_1.__spreadArray([], arr, true), (i.tickets || []), true); }, []);
return { orders: filtered.length, tickets: tickets.length };
};
exports.makeKdsStationCount = makeKdsStationCount;
var makeKdsStationCounts = function (orders, prepStations) {
var _a = (0, exports.makeCurrentAndFutureOrders)(orders), currentOrders = _a.current, futureOrders = _a.future;
var currentAssembly = currentOrders.filter(function (i) {
return i.order_prep ? (0, exports.notDone)(i.order_prep.prep_status) : false;
});
var futureAssembly = futureOrders.filter(function (i) {
return i.order_prep ? (0, exports.notDone)(i.order_prep.prep_status) : false;
});
var currentExpoDone = currentOrders.filter(function (i) {
return i.order_prep ? i.order_prep.prep_status === 'DONE' : false;
});
var currentExpo = currentOrders.filter(function (i) {
return i.order_prep ? (0, exports.notCompleted)(i.order_prep.prep_status) : false;
});
var futureExpoDone = futureOrders.filter(function (i) {
return i.order_prep ? i.order_prep.prep_status === 'DONE' : false;
});
var futureExpo = futureOrders.filter(function (i) {
return i.order_prep ? (0, exports.notCompleted)(i.order_prep.prep_status) : false;
});
return prepStations.reduce(function (obj, i) {
var _a;
var currentFiltered = i.prep_type === 'ASSEMBLY'
? currentAssembly
: i.expo_done_only
? currentExpoDone
: currentExpo;
var current = (0, exports.makeKdsStationCount)(currentFiltered, i.item_type_ids, i.prep_type);
var futureFiltered = i.prep_type === 'ASSEMBLY'
? futureAssembly
: i.expo_done_only
? futureExpoDone
: futureExpo;
var future = (0, exports.makeKdsStationCount)(futureFiltered, i.item_type_ids, i.prep_type);
return tslib_1.__assign(tslib_1.__assign({}, obj), (_a = {}, _a[i.prep_station_id] = { CURRENT: current, FUTURE: future }, _a));
}, {});
};
exports.makeKdsStationCounts = makeKdsStationCounts;
var makeOrderBuckets = function (orders, tz) {
var intervals = (0, utils_2.makeIntervals)(tz);
var withOrders = intervals.map(function (interval) {
var inBucket = orders.filter(function (order) {
if (!order.order_prep)
return false;
var ready_at = order.order_prep.ready_at;
if (!ready_at)
return false;
var readyAt = (0, utils_1.isoToDate)(ready_at, tz);
return readyAt > interval.start && readyAt <= interval.end;
});
return tslib_1.__assign(tslib_1.__assign({}, interval), { orders: inBucket });
});
return withOrders;
};
exports.makeOrderBuckets = makeOrderBuckets;
var makeOrderBucketsCounts = function (itemTypes, orders) {
if (itemTypes === void 0) { itemTypes = []; }
if (orders === void 0) { orders = []; }
var itemTypeCounts = itemTypes
.filter(function (i) { return i.is_default; })
.reduce(function (obj, i) {
var _a;
return (tslib_1.__assign(tslib_1.__assign({}, obj), (_a = {}, _a[i.name] = 0, _a)));
}, {});
var counts = tslib_1.__assign({ Orders: 0 }, itemTypeCounts);
orders.forEach(function (order) {
var _a;
var ticketCounts = (_a = order.tickets) === null || _a === void 0 ? void 0 : _a.reduce(function (obj, ticket) {
var _a;
var count = obj[ticket.item_type_name] || 0;
return tslib_1.__assign(tslib_1.__assign({}, obj), (_a = {}, _a[ticket.item_type_name] = count + ticket.item_nos.length, _a));
}, {});
if (ticketCounts)
counts = updateCounts(counts, ticketCounts);
});
return counts;
};
exports.makeOrderBucketsCounts = makeOrderBucketsCounts;
var makeTicketCounts = function (tickets) {
return tickets.reduce(function (obj, i) {
var _a;
var count = obj[i.item_type_id.toString()] || 0;
return tslib_1.__assign(tslib_1.__assign({}, obj), (_a = {}, _a[i.item_type_id] = count + i.item_nos.length, _a));
}, {});
};
exports.makeTicketCounts = makeTicketCounts;
var makeItemTypeSettings = function (itemType) {
var _a = itemType || {}, is_default = _a.is_default, is_grouped = _a.is_grouped, is_hidden_assembly = _a.is_hidden_assembly, is_hidden_qa = _a.is_hidden_qa, print_on_completed = _a.print_on_completed;
return {
is_default: is_default,
is_grouped: is_grouped,
is_hidden_assembly: is_hidden_assembly,
is_hidden_qa: is_hidden_qa,
print_on_completed: print_on_completed
};
};
exports.makeItemTypeSettings = makeItemTypeSettings;
var makeItemTypesMap = function (itemTypes) {
return itemTypes.reduce(function (obj, i) {
var _a;
return (tslib_1.__assign(tslib_1.__assign({}, obj), (_a = {}, _a[i.item_type_id] = i, _a)));
}, {});
};
exports.makeItemTypesMap = makeItemTypesMap;
var makeCartLookup = function (cart) {
return cart.reduce(function (obj, i) {
var _a;
if (!i.item_no)
return obj;
return tslib_1.__assign(tslib_1.__assign({}, obj), (_a = {}, _a[i.item_no.toString()] = i, _a));
}, {});
};
exports.makeCartLookup = makeCartLookup;
var makeModifiersMetadataLookup = function (cart) {
return cart.reduce(function (obj, i) {
var _a;
return (tslib_1.__assign(tslib_1.__assign({}, obj), (_a = {}, _a[i.item_no.toString()] = i, _a)));
}, {});
};
exports.makeModifiersMetadataLookup = makeModifiersMetadataLookup;
var makeTicketGroups = function (tickets, itemTypes, isAssembly, cart, modifiersMetadata) {
var lookup = cart
? (0, exports.makeCartLookup)(cart)
: modifiersMetadata
? (0, exports.makeModifiersMetadataLookup)(modifiersMetadata)
: {};
var itemTypesMap = (0, exports.makeItemTypesMap)(itemTypes);
var grouped = tickets.reduce(function (obj, i) {
var _a;
var items = i.item_nos.map(function (n) { return lookup[n.toString()]; });
var settings = (0, exports.makeItemTypeSettings)(itemTypesMap[i.item_type_id]);
var hideTicket = isAssembly && settings.is_hidden_assembly;
var ticket = tslib_1.__assign(tslib_1.__assign(tslib_1.__assign({}, i), { items: items }), settings);
var group = obj[i.item_type_id.toString()] || [];
var newGroup = hideTicket ? group : tslib_1.__spreadArray(tslib_1.__spreadArray([], group, true), [ticket], false);
return tslib_1.__assign(tslib_1.__assign({}, obj), (_a = {}, _a[i.item_type_id] = newGroup, _a));
}, {});
var groups = Object.values(grouped);
return groups.filter(function (group) { return group.length; });
};
exports.makeTicketGroups = makeTicketGroups;
var makeDisplayCounts = function (counts) {
if (!counts)
return '';
return Object.entries(counts).map(function (_a) {
var value = _a[1];
return value;
});
};
exports.makeDisplayCounts = makeDisplayCounts;
var displayCounts = function (counts) {
if (!counts)
return '';
var countStr = Object.entries(counts)
// .map(([key, value]) => `${value}-${key.charAt(0)}`)
.map(function (_a) {
var value = _a[1];
return "".concat(value);
})
.join('/');
return " (".concat(countStr, ")");
};
exports.displayCounts = displayCounts;
var makeBucketColor = function (settings, minutes) {
var _a = settings || {}, warning_minutes = _a.warning_minutes, alert_minutes = _a.alert_minutes;
if (!warning_minutes && !alert_minutes)
return '';
return minutes < warning_minutes
? 'error'
: minutes < alert_minutes
? 'alert'
: 'text';
};
exports.makeBucketColor = makeBucketColor;
var makeOrderPrepTimes = function (order, amPm, warningMinutes, alertMinutes) {
if (amPm === void 0) { amPm = false; }
if (warningMinutes === void 0) { warningMinutes = 5; }
if (alertMinutes === void 0) { alertMinutes = 10; }
var order_prep = order.order_prep, timezone = order.timezone, requested_at = order.requested_at;
if (!order_prep)
return null;
var ready_at = order_prep.ready_at, expected_at = order_prep.expected_at, prep_status = order_prep.prep_status;
if (!ready_at || !expected_at || requested_at === 'asap')
return null;
var tz = utils_2.timezoneMap[timezone];
var current = (0, utils_2.currentLocalDate)(tz);
var readyBy = (0, utils_1.isoToDate)(ready_at || expected_at, tz);
var requested = (0, utils_1.isoToDate)(requested_at, tz);
var expected = (0, utils_1.isoToDate)(expected_at, tz);
var delayed = (0, utils_2.minutesLeft)(expected, requested);
var minutes = (0, utils_2.minutesLeft)(readyBy, current);
var readyTime = (0, utils_2.formatDate)(readyBy, amPm ? 'h:mm a' : 'h:mm');
var requestedTime = (0, utils_2.formatDate)(requested, amPm ? 'h:mm a' : 'h:mm');
var expectedTime = (0, utils_2.formatDate)(expected, amPm ? 'h:mm a' : 'h:mm');
var expectedDate = (0, utils_2.formatDate)(expected, 'EEE, MMM d');
var todayDate = (0, utils_2.formatDate)(current, 'yyyy-MM-dd');
var dateStr = (0, utils_2.formatDate)(expected, 'yyyy-MM-dd');
dateStr = dateStr === todayDate ? '' : (0, utils_2.formatDate)(expected, 'EEE, MMM d');
var status = (0, exports.isCompleted)(prep_status)
? 'COMPLETE'
: minutes < warningMinutes
? 'WARNING'
: minutes < alertMinutes
? 'ALERT'
: 'PREP';
return {
delayed: delayed,
requested: requested,
requestedTime: requestedTime,
expected: expected,
expectedDate: expectedDate,
expectedTime: expectedTime,
readyBy: readyBy,
readyTime: readyTime,
dateStr: dateStr,
status: status
};
};
exports.makeOrderPrepTimes = makeOrderPrepTimes;
var makeHeaderStatusColor = function (status) {
switch (status) {
case 'WARNING':
return 'error';
case 'ALERT':
return 'alert';
default:
return 'default';
}
};
exports.makeHeaderStatusColor = makeHeaderStatusColor;