@open-tender/store 0.2.111 → 0.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,50 +1,31 @@
1
1
  var _a;
2
- import { __assign, __awaiter, __generator } from "tslib";
2
+ import { __awaiter, __generator } from "tslib";
3
3
  import { createAsyncThunk, createSlice } from '@reduxjs/toolkit';
4
4
  import { ReducerType } from './types';
5
- import { currentLocalDate, isoToDate, makeFetchOrdersArgs, makeOrdersCounts, notDone, timezoneMap } from '../utils';
6
- import { addAlert } from './alerts';
5
+ import { makeFetchOrdersArgs } from '../utils';
7
6
  var initialState = {
8
- // businessDate: null,
9
- // receiptType: 'BOTH',
10
- // channelType: ['POS', 'KIOSK'],
11
- // prepStatus: ['COMPLETED'],
12
- // search: null,
13
7
  entities: [],
14
8
  loading: 'idle',
15
9
  error: null,
16
10
  current: null,
17
- refund: null,
18
- counts: { current: null, future: null, qa: null },
19
- itemTypes: null
11
+ refund: null
20
12
  };
21
13
  export var OrdersActionType;
22
14
  (function (OrdersActionType) {
23
15
  OrdersActionType["FetchOrders"] = "orders/fetchOrders";
24
- OrdersActionType["RefreshOrders"] = "orders/refreshOrders";
25
- OrdersActionType["UpdateOrder"] = "orders/updateOrder";
26
- OrdersActionType["PrintTickets"] = "orders/printTickets";
27
- OrdersActionType["ResetTickets"] = "orders/resetTickets";
28
- OrdersActionType["PrintReceipt"] = "orders/printReceipt";
29
- OrdersActionType["PrintTicket"] = "orders/printTicket";
30
- OrdersActionType["UpdateTicket"] = "orders/updateTicket";
31
16
  })(OrdersActionType || (OrdersActionType = {}));
32
17
  export var fetchOrders = createAsyncThunk(OrdersActionType.FetchOrders, function (params, _a) {
33
18
  var getState = _a.getState, rejectWithValue = _a.rejectWithValue;
34
19
  return __awaiter(void 0, void 0, void 0, function () {
35
- var api, itemTypes, args, orders, counts, err_1;
20
+ var api, args, err_1;
36
21
  return __generator(this, function (_b) {
37
22
  switch (_b.label) {
38
23
  case 0:
39
24
  _b.trys.push([0, 2, , 3]);
40
25
  api = getState().config.api;
41
- itemTypes = getState().orders.itemTypes;
42
26
  args = makeFetchOrdersArgs(params);
43
27
  return [4 /*yield*/, api.getOrders(args)];
44
- case 1:
45
- orders = _b.sent();
46
- counts = makeOrdersCounts(itemTypes, orders);
47
- return [2 /*return*/, { orders: orders, counts: counts }];
28
+ case 1: return [2 /*return*/, _b.sent()];
48
29
  case 2:
49
30
  err_1 = _b.sent();
50
31
  return [2 /*return*/, rejectWithValue(err_1)];
@@ -53,226 +34,22 @@ export var fetchOrders = createAsyncThunk(OrdersActionType.FetchOrders, function
53
34
  });
54
35
  });
55
36
  });
56
- export var updateOrder = createAsyncThunk(OrdersActionType.UpdateOrder, function (_a, _b) {
57
- var orderId = _a.orderId, data = _a.data;
58
- var getState = _b.getState, dispatch = _b.dispatch;
59
- return __awaiter(void 0, void 0, void 0, function () {
60
- var api, order, err_2, detail;
61
- return __generator(this, function (_c) {
62
- switch (_c.label) {
63
- case 0:
64
- _c.trys.push([0, 2, , 3]);
65
- api = getState().config.api;
66
- return [4 /*yield*/, api.patchOrder(orderId, data)];
67
- case 1:
68
- order = _c.sent();
69
- dispatch(updateOrdersOrder(order));
70
- return [3 /*break*/, 3];
71
- case 2:
72
- err_2 = _c.sent();
73
- detail = err_2.detail;
74
- dispatch(addAlert(detail));
75
- return [3 /*break*/, 3];
76
- case 3: return [2 /*return*/];
77
- }
78
- });
79
- });
80
- });
81
- export var printReceipt = createAsyncThunk(OrdersActionType.PrintReceipt, function (orderId, _a) {
82
- var getState = _a.getState, dispatch = _a.dispatch;
83
- return __awaiter(void 0, void 0, void 0, function () {
84
- var api, order, err_3, detail;
85
- return __generator(this, function (_b) {
86
- switch (_b.label) {
87
- case 0:
88
- _b.trys.push([0, 2, , 3]);
89
- api = getState().config.api;
90
- return [4 /*yield*/, api.postReceipt(orderId)];
91
- case 1:
92
- order = _b.sent();
93
- dispatch(updateOrdersOrder(order));
94
- return [3 /*break*/, 3];
95
- case 2:
96
- err_3 = _b.sent();
97
- detail = err_3.detail;
98
- dispatch(addAlert(detail));
99
- return [3 /*break*/, 3];
100
- case 3: return [2 /*return*/];
101
- }
102
- });
103
- });
104
- });
105
- export var printTickets = createAsyncThunk(OrdersActionType.PrintTickets, function (_a, _b) {
106
- var orderId = _a.orderId, data = _a.data;
107
- var getState = _b.getState, dispatch = _b.dispatch;
108
- return __awaiter(void 0, void 0, void 0, function () {
109
- var api, order, err_4, detail;
110
- return __generator(this, function (_c) {
111
- switch (_c.label) {
112
- case 0:
113
- _c.trys.push([0, 2, , 3]);
114
- api = getState().config.api;
115
- return [4 /*yield*/, api.postTicketsPrint(orderId, data)];
116
- case 1:
117
- order = _c.sent();
118
- dispatch(updateOrdersOrder(order));
119
- return [3 /*break*/, 3];
120
- case 2:
121
- err_4 = _c.sent();
122
- detail = err_4.detail;
123
- dispatch(addAlert(detail));
124
- return [3 /*break*/, 3];
125
- case 3: return [2 /*return*/];
126
- }
127
- });
128
- });
129
- });
130
- export var resetTickets = createAsyncThunk(OrdersActionType.ResetTickets, function (orderId, _a) {
131
- var getState = _a.getState, dispatch = _a.dispatch;
132
- return __awaiter(void 0, void 0, void 0, function () {
133
- var api, order, err_5, detail;
134
- return __generator(this, function (_b) {
135
- switch (_b.label) {
136
- case 0:
137
- _b.trys.push([0, 2, , 3]);
138
- api = getState().config.api;
139
- return [4 /*yield*/, api.postTicketsReset(orderId)];
140
- case 1:
141
- order = _b.sent();
142
- dispatch(updateOrdersOrder(order));
143
- return [3 /*break*/, 3];
144
- case 2:
145
- err_5 = _b.sent();
146
- detail = err_5.detail;
147
- dispatch(addAlert(detail));
148
- return [3 /*break*/, 3];
149
- case 3: return [2 /*return*/];
150
- }
151
- });
152
- });
153
- });
154
- export var printTicket = createAsyncThunk(OrdersActionType.PrintTicket, function (_a, _b) {
155
- var orderId = _a.orderId, ticketNo = _a.ticketNo, status = _a.status;
156
- var getState = _b.getState, dispatch = _b.dispatch;
157
- return __awaiter(void 0, void 0, void 0, function () {
158
- var api, data, order, err_6, detail;
159
- return __generator(this, function (_c) {
160
- switch (_c.label) {
161
- case 0:
162
- _c.trys.push([0, 2, , 3]);
163
- api = getState().config.api;
164
- data = status ? { ticket_status: status } : {};
165
- return [4 /*yield*/, api.postTicketPrint(orderId, ticketNo, data)];
166
- case 1:
167
- order = _c.sent();
168
- dispatch(updateOrdersOrder(order));
169
- return [3 /*break*/, 3];
170
- case 2:
171
- err_6 = _c.sent();
172
- detail = err_6.detail;
173
- dispatch(addAlert(detail));
174
- return [3 /*break*/, 3];
175
- case 3: return [2 /*return*/];
176
- }
177
- });
178
- });
179
- });
180
- export var updateTicket = createAsyncThunk(OrdersActionType.UpdateTicket, function (_a, _b) {
181
- var orderId = _a.orderId, ticketNo = _a.ticketNo, status = _a.status;
182
- var getState = _b.getState, dispatch = _b.dispatch;
183
- return __awaiter(void 0, void 0, void 0, function () {
184
- var api, order, err_7, detail;
185
- return __generator(this, function (_c) {
186
- switch (_c.label) {
187
- case 0:
188
- _c.trys.push([0, 2, , 3]);
189
- api = getState().config.api;
190
- return [4 /*yield*/, api.postTicketStatus(orderId, ticketNo, status)];
191
- case 1:
192
- order = _c.sent();
193
- dispatch(updateOrdersOrder(order));
194
- return [3 /*break*/, 3];
195
- case 2:
196
- err_7 = _c.sent();
197
- detail = err_7.detail;
198
- dispatch(addAlert(detail));
199
- return [3 /*break*/, 3];
200
- case 3: return [2 /*return*/];
201
- }
202
- });
203
- });
204
- });
205
- // export const refreshOrders = createAsyncThunk<
206
- // OrdersAndCounts,
207
- // void,
208
- // { state: AppState; rejectValue: RequestError }
209
- // >(OrdersActionType.RefreshOrders, async (_, { getState, rejectWithValue }) => {
210
- // try {
211
- // const { api, itemTypes } = getState().config
212
- // const { businessDate, receiptType, channelType, prepStatus, search } =
213
- // getState().orders
214
- // const args = makeFetchOrdersArgs({
215
- // businessDate,
216
- // receiptType,
217
- // channelType,
218
- // prepStatus,
219
- // search
220
- // })
221
- // const orders = await api.getOrders(args)
222
- // const counts = makeOrdersCounts(itemTypes, orders)
223
- // return { orders, counts }
224
- // } catch (err) {
225
- // return rejectWithValue(err as RequestError)
226
- // }
227
- // })
228
37
  var ordersSlice = createSlice({
229
38
  name: ReducerType.Orders,
230
39
  initialState: initialState,
231
40
  reducers: {
232
41
  resetOrders: function () { return initialState; },
233
- setOrdersItemTypes: function (state, action) {
234
- state.itemTypes = action.payload;
235
- },
236
- // setOrdersBusinessDate: (state, action) => {
237
- // state.businessDate = action.payload
238
- // },
239
- // setOrdersChannelType: (state, action) => {
240
- // state.channelType = action.payload
241
- // },
242
- // setOrdersPrepStatus: (state, action) => {
243
- // state.prepStatus = action.payload
244
- // },
245
- // setOrdersSearch: (state, action) => {
246
- // state.search = action.payload
247
- // },
248
42
  setOrdersCurrent: function (state, action) {
249
43
  state.current = action.payload;
250
44
  },
251
45
  setOrdersRefund: function (state, action) {
252
46
  state.refund = action.payload;
253
- },
254
- updateOrdersOrder: function (state, action) {
255
- var order = action.payload;
256
- var tz = timezoneMap[order.timezone];
257
- var updated = state.entities
258
- .map(function (i) {
259
- return i.order_uuid === order.order_uuid ? order : i;
260
- })
261
- .filter(function (i) { return i.fire_at; });
262
- var entities = updated
263
- .map(function (i) { return (__assign(__assign({}, i), { fireAt: isoToDate(i.fire_at, tz) })); })
264
- .sort(function (a, b) { return a.fireAt.getTime() - b.fireAt.getTime(); });
265
- var counts = makeOrdersCounts(state.itemTypes, entities);
266
- var current = state.current ? order : null;
267
- return __assign(__assign({}, state), { entities: entities, current: current, counts: counts });
268
47
  }
269
48
  },
270
49
  extraReducers: function (builder) {
271
50
  builder
272
51
  .addCase(fetchOrders.fulfilled, function (state, action) {
273
- var _a = action.payload, orders = _a.orders, counts = _a.counts;
274
- state.entities = orders;
275
- state.counts = counts;
52
+ state.entities = action.payload;
276
53
  state.loading = 'idle';
277
54
  state.error = null;
278
55
  })
@@ -282,123 +59,11 @@ var ordersSlice = createSlice({
282
59
  .addCase(fetchOrders.rejected, function (state, action) {
283
60
  state.error = action.payload;
284
61
  state.loading = 'idle';
285
- })
286
- .addCase(updateOrder.fulfilled, function (state) {
287
- state.loading = 'idle';
288
- state.error = null;
289
- })
290
- .addCase(updateOrder.pending, function (state) {
291
- state.loading = 'pending';
292
- })
293
- .addCase(updateOrder.rejected, function (state) {
294
- state.loading = 'idle';
295
- })
296
- .addCase(printReceipt.fulfilled, function (state) {
297
- state.loading = 'idle';
298
- state.error = null;
299
- })
300
- .addCase(printReceipt.pending, function (state) {
301
- state.loading = 'pending';
302
- })
303
- .addCase(printReceipt.rejected, function (state) {
304
- state.loading = 'idle';
305
- })
306
- .addCase(printTickets.fulfilled, function (state) {
307
- state.loading = 'idle';
308
- state.error = null;
309
- })
310
- .addCase(printTickets.pending, function (state) {
311
- state.loading = 'pending';
312
- })
313
- .addCase(printTickets.rejected, function (state) {
314
- state.loading = 'idle';
315
- })
316
- .addCase(resetTickets.fulfilled, function (state) {
317
- state.loading = 'idle';
318
- state.error = null;
319
- })
320
- .addCase(resetTickets.pending, function (state) {
321
- state.loading = 'pending';
322
- })
323
- .addCase(resetTickets.rejected, function (state) {
324
- state.loading = 'idle';
325
- })
326
- .addCase(printTicket.fulfilled, function (state) {
327
- state.loading = 'idle';
328
- state.error = null;
329
- })
330
- .addCase(printTicket.pending, function (state) {
331
- state.loading = 'pending';
332
- })
333
- .addCase(printTicket.rejected, function (state) {
334
- state.loading = 'idle';
335
- })
336
- .addCase(updateTicket.fulfilled, function (state) {
337
- state.loading = 'idle';
338
- state.error = null;
339
- })
340
- .addCase(updateTicket.pending, function (state) {
341
- state.loading = 'pending';
342
- })
343
- .addCase(updateTicket.rejected, function (state) {
344
- state.loading = 'idle';
345
62
  });
346
- // .addCase(refreshOrders.fulfilled, (state, action) => {
347
- // const { orders, counts } = action.payload
348
- // state.entities = orders
349
- // state.counts = counts
350
- // state.loading = 'idle'
351
- // state.error = null
352
- // })
353
- // .addCase(refreshOrders.pending, state => {
354
- // state.loading = 'pending'
355
- // })
356
- // .addCase(refreshOrders.rejected, (state, action) => {
357
- // state.error = action.payload
358
- // state.loading = 'idle'
359
- // })
360
63
  }
361
64
  });
362
- export var resetOrders = (_a = ordersSlice.actions, _a.resetOrders), setOrdersItemTypes = _a.setOrdersItemTypes,
363
- // setOrdersBusinessDate,
364
- // setOrdersChannelType,
365
- // setOrdersPrepStatus,
366
- // setOrdersSearch,
367
- setOrdersCurrent = _a.setOrdersCurrent, setOrdersRefund = _a.setOrdersRefund, updateOrdersOrder = _a.updateOrdersOrder;
368
- export var selectItemTypes = function (state) { return state.orders.itemTypes; };
65
+ export var resetOrders = (_a = ordersSlice.actions, _a.resetOrders), setOrdersCurrent = _a.setOrdersCurrent, setOrdersRefund = _a.setOrdersRefund;
369
66
  export var selectOrders = function (state) { return state.orders; };
370
- // export const selectOrdersArgs = (state: AppState) => {
371
- // const { businessDate, receiptType, channelType, prepStatus, search } =
372
- // state.orders
373
- // return { businessDate, receiptType, channelType, prepStatus, search }
374
- // }
375
- // export const selectOrdersBusinessDate = (state: AppState) =>
376
- // state.orders.businessDate
377
- // export const selectOrdersSearch = (state: AppState) => state.orders.search
378
67
  export var selectOrdersCurrent = function (state) { return state.orders.current; };
379
68
  export var selectOrdersRefund = function (state) { return state.orders.refund; };
380
- export var selectCurrentOrders = function (state) {
381
- var _a = state.orders, entities = _a.entities, loading = _a.loading, error = _a.error;
382
- var orders = entities.filter(function (i) {
383
- var tz = timezoneMap[i.timezone];
384
- var fireDate = i.fire_at ? isoToDate(i.fire_at, tz) : null;
385
- var currentDate = currentLocalDate(tz);
386
- return notDone(i.prep_status) && fireDate && fireDate < currentDate;
387
- });
388
- return { orders: orders, loading: loading, error: error };
389
- };
390
- export var selectFutureOrders = function (state) {
391
- var _a = state.orders, entities = _a.entities, loading = _a.loading, error = _a.error;
392
- var orders = entities.filter(function (i) {
393
- var tz = timezoneMap[i.timezone];
394
- var fireDate = i.fire_at ? isoToDate(i.fire_at, tz) : null;
395
- var currentDate = currentLocalDate(tz);
396
- return notDone(i.prep_status) && fireDate && fireDate > currentDate;
397
- });
398
- return { orders: orders, loading: loading, error: error };
399
- };
400
- export var selectOrdersCounts = function (state) {
401
- var _a = state.orders.counts, current = _a.current, future = _a.future, qa = _a.qa;
402
- return { current: current, future: future, qa: qa };
403
- };
404
69
  export var ordersReducer = ordersSlice.reducer;
@@ -309,12 +309,12 @@ export interface Order {
309
309
  totals: OrderTotals;
310
310
  }
311
311
  export declare type Orders = Array<Order>;
312
- export interface OrderKDS extends Omit<Order, 'fire_at' | 'tickets' | 'expected_at'> {
312
+ export interface OrderKds extends Omit<Order, 'fire_at' | 'tickets' | 'expected_at'> {
313
313
  expected_at: ISOStringOffset;
314
314
  fire_at: ISOStringOffset;
315
315
  tickets: OrderTickets;
316
316
  }
317
- export declare type OrdersKDS = Array<OrderKDS>;
317
+ export declare type OrdersKds = Array<OrderKds>;
318
318
  export interface FetchOrdersArgs {
319
319
  businessDate?: DateString | null;
320
320
  receiptType?: ReceiptType | 'BOTH';
@@ -341,7 +341,7 @@ export interface OrderCounts {
341
341
  qa: Record<string, number> | null;
342
342
  }
343
343
  export interface OrdersAndCounts {
344
- orders: Orders;
344
+ orders: OrdersKds;
345
345
  counts: OrderCounts;
346
346
  }
347
347
  export interface OrderUpdate {
@@ -385,3 +385,8 @@ export interface Ticket {
385
385
  }
386
386
  export declare type TicketGroup = Ticket[];
387
387
  export declare type TicketGroups = TicketGroup[];
388
+ export interface OrderKdsStatus {
389
+ NOT_DONE: boolean;
390
+ DONE: boolean;
391
+ COMPLETED: boolean;
392
+ }
@@ -33,4 +33,5 @@ export declare type TicketStatus = 'TODO' | 'IN_PROGRESS' | 'DONE' | 'COMPLETED'
33
33
  export declare type OrderStatus = 'OPEN' | 'HELD' | 'CLOSED' | 'VOID';
34
34
  export declare type TenderStatus = 'AUTHORIZED' | 'PAID' | 'REFUNDED' | 'VOID' | 'FAILED';
35
35
  export declare type EntityType = 'TIME_PUNCH' | 'CASH_EVENT' | 'ORDER' | 'DEPARTMENT' | 'DEVICES' | 'DISCOUNT' | 'EMPLOYEE' | 'HOUSE_ACCOUNT' | 'LOCATION' | 'MENU' | 'MENU_PAGE' | 'SELECT_OPTION' | 'SURCHARGE' | 'TAX' | 'STORE' | 'REVENUE_CENTER' | 'ITEM_TYPE' | 'QRCODE';
36
- export declare type KdsView = 'column' | 'grid' | 'list';
36
+ export declare type KdsView = 'column' | 'grid' | 'list' | 'tiles';
37
+ export declare type KdsFontSize = 'xsmall' | 'small' | 'medium' | 'large';
@@ -1,11 +1,12 @@
1
- import { FetchOrdersAPIArgs, FetchOrdersArgs, ItemType, ItemTypes, ModifiersMetadata, OrderBuckets, OrderCart, OrderItem, OrderKDS, Orders, OrdersKDS, OrderTickets, OrderTimes, PrepStatus, PrepStatusMap, Store, TicketGroups, Timezone } from '../types';
1
+ import { FetchOrdersAPIArgs, FetchOrdersArgs, ItemType, ItemTypes, ModifiersMetadata, OrderBuckets, OrderCart, OrderItem, OrderKds, Orders, OrdersKds, OrderTickets, OrderTimes, PrepStatus, PrepStatusMap, Store, TicketGroups, Timezone } from '../types';
2
2
  export declare const prepStatus: PrepStatusMap;
3
3
  export declare const makeFetchOrdersArgs: ({ businessDate, receiptType, channelType, prepStatus, search, sortBy, sortDirection, parentOrderId }: FetchOrdersArgs) => FetchOrdersAPIArgs;
4
4
  export declare const notDone: (prep_status: PrepStatus) => boolean;
5
5
  export declare const isDone: (prep_status: PrepStatus) => boolean;
6
6
  export declare const notCompleted: (prep_status: PrepStatus) => boolean;
7
7
  export declare const isCompleted: (prep_status: PrepStatus) => boolean;
8
- export declare const makeOrdersCounts: (itemTypes: ItemTypes | null, orders: Orders | null) => {
8
+ export declare const makeKdsOrders: (orders: Orders) => OrdersKds;
9
+ export declare const makeKdsCounts: (itemTypes: ItemTypes | null, orders: OrdersKds | null) => {
9
10
  current: null;
10
11
  future: null;
11
12
  qa: null;
@@ -14,8 +15,8 @@ export declare const makeOrdersCounts: (itemTypes: ItemTypes | null, orders: Ord
14
15
  future: Record<string, number>;
15
16
  qa: Record<string, number>;
16
17
  };
17
- export declare const makeOrderBuckets: (orders: OrdersKDS, tz: Timezone, prepStates?: Array<PrepStatus>) => OrderBuckets;
18
- export declare const makeOrderBucketsCounts: (itemTypes?: ItemTypes, orders?: OrdersKDS) => Record<string, number>;
18
+ export declare const makeOrderBuckets: (orders: OrdersKds, tz: Timezone, prepStates?: Array<PrepStatus>) => OrderBuckets;
19
+ export declare const makeOrderBucketsCounts: (itemTypes?: ItemTypes, orders?: OrdersKds) => Record<string, number>;
19
20
  export declare const makeTicketCounts: (tickets: OrderTickets) => Record<string, number>;
20
21
  export declare const makeItemTypeSettings: (itemType: ItemType) => {
21
22
  is_default: boolean;
@@ -24,11 +25,11 @@ export declare const makeItemTypeSettings: (itemType: ItemType) => {
24
25
  is_hidden_qa: boolean;
25
26
  print_on_completed: boolean;
26
27
  };
27
- export declare const makeItemTypesMap: (itemTypes: ItemTypes) => {} | null;
28
+ export declare const makeItemTypesMap: (itemTypes: ItemTypes) => Record<string, ItemType>;
28
29
  export declare const makeCartLookup: (cart: OrderCart) => Record<string, OrderItem>;
29
30
  export declare const makeModifiersMetadataLookup: (cart: ModifiersMetadata) => Record<string, OrderItem>;
30
31
  export declare const makeTicketGroups: (tickets: OrderTickets, itemTypes: ItemTypes, isAssembly: boolean, cart: OrderCart, modifiersMetadata?: ModifiersMetadata | null) => TicketGroups;
31
32
  export declare const makeDisplayCounts: (counts: Record<string, number>) => number[] | "";
32
33
  export declare const displayCounts: (counts: Record<string, number>) => string;
33
34
  export declare const makeBucketColor: (settings: Store, minutes: number) => "" | "error" | "alert" | "text";
34
- export declare const makeOrderTimes: (order: OrderKDS, amPm?: boolean, warningMinutes?: number, alertMinutes?: number) => OrderTimes;
35
+ export declare const makeOrderTimes: (order: OrderKds, amPm?: boolean, warningMinutes?: number, alertMinutes?: number) => OrderTimes;
@@ -60,6 +60,9 @@ export var isCompleted = function (prep_status) {
60
60
  var completeStates = [prepStatus.COMPLETED, prepStatus.FULFILLED];
61
61
  return completeStates.includes(prep_status);
62
62
  };
63
+ export var makeKdsOrders = function (orders) {
64
+ return orders.filter(function (i) { return i.expected_at && i.fire_at && i.tickets; });
65
+ };
63
66
  var updateCounts = function (counts, ticketCounts) {
64
67
  // console.log('BEFORE', counts, ticketCounts)
65
68
  var updated = Object.entries(counts).reduce(function (obj, _a) {
@@ -71,11 +74,11 @@ var updateCounts = function (counts, ticketCounts) {
71
74
  // console.log('AFTER', updated)
72
75
  return updated;
73
76
  };
74
- export var makeOrdersCounts = function (itemTypes, orders) {
77
+ export var makeKdsCounts = function (itemTypes, orders) {
75
78
  if (!itemTypes || !orders) {
76
79
  return { current: null, future: null, qa: null };
77
80
  }
78
- console.time('makeOrdersCounts');
81
+ console.time('makeKdsCounts');
79
82
  var itemTypeCounts = itemTypes
80
83
  .filter(function (i) { return i.is_default; })
81
84
  .reduce(function (obj, i) {
@@ -109,7 +112,7 @@ export var makeOrdersCounts = function (itemTypes, orders) {
109
112
  future = updateCounts(future, ticketCounts);
110
113
  }
111
114
  });
112
- console.timeEnd('makeOrdersCounts');
115
+ console.timeEnd('makeKdsCounts');
113
116
  return { current: current, future: future, qa: qa };
114
117
  };
115
118
  export var makeOrderBuckets = function (orders, tz, prepStates) {
@@ -165,12 +168,10 @@ export var makeItemTypeSettings = function (itemType) {
165
168
  };
166
169
  };
167
170
  export var makeItemTypesMap = function (itemTypes) {
168
- return itemTypes
169
- ? itemTypes.reduce(function (obj, i) {
170
- var _a;
171
- return (__assign(__assign({}, obj), (_a = {}, _a[i.item_type_id] = i, _a)));
172
- }, {})
173
- : null;
171
+ return itemTypes.reduce(function (obj, i) {
172
+ var _a;
173
+ return (__assign(__assign({}, obj), (_a = {}, _a[i.item_type_id] = i, _a)));
174
+ }, {});
174
175
  };
175
176
  export var makeCartLookup = function (cart) {
176
177
  return cart.reduce(function (obj, i) {
@@ -190,17 +191,19 @@ export var makeTicketGroups = function (tickets, itemTypes, isAssembly, cart, mo
190
191
  : modifiersMetadata
191
192
  ? makeModifiersMetadataLookup(modifiersMetadata)
192
193
  : {};
194
+ var itemTypesMap = makeItemTypesMap(itemTypes);
193
195
  var grouped = tickets.reduce(function (obj, i) {
194
196
  var _a;
195
197
  var items = i.item_nos.map(function (n) { return lookup[n.toString()]; });
196
- var settings = makeItemTypeSettings(itemTypes[i.item_type_id]);
198
+ var settings = makeItemTypeSettings(itemTypesMap[i.item_type_id]);
197
199
  var hideTicket = isAssembly && settings.is_hidden_assembly;
198
200
  var ticket = __assign(__assign(__assign({}, i), { items: items }), settings);
199
201
  var group = obj[i.item_type_id.toString()] || [];
200
202
  var newGroup = hideTicket ? group : __spreadArray(__spreadArray([], group, true), [ticket], false);
201
203
  return __assign(__assign({}, obj), (_a = {}, _a[i.item_type_id] = newGroup, _a));
202
204
  }, {});
203
- return Object.values(grouped);
205
+ var groups = Object.values(grouped);
206
+ return groups.filter(function (group) { return group.length; });
204
207
  };
205
208
  export var makeDisplayCounts = function (counts) {
206
209
  if (!counts)
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@open-tender/store",
3
- "version": "0.2.111",
3
+ "version": "0.3.1",
4
4
  "description": "A library of hooks, reducers, utility functions, and types for use with Open Tender applications that utilize our in-store POS API",
5
5
  "main": "./dist/cjs/index.js",
6
6
  "module": "./dist/esm/index.js",