@open-tender/store 0.3.39 → 0.3.41

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.
@@ -15,6 +15,8 @@ export interface KdsState {
15
15
  search: string | null;
16
16
  businessDate: DateString | null;
17
17
  summary: boolean;
18
+ allDay: boolean;
19
+ allDayMods: boolean;
18
20
  orders: OrdersKds;
19
21
  loading: RequestStatus;
20
22
  error: RequestError;
@@ -147,6 +149,8 @@ export declare const kdsSlice: import("@reduxjs/toolkit").Slice<KdsState, {
147
149
  type: string;
148
150
  }) => void;
149
151
  toggleKdsSummary: (state: import("immer/dist/internal").WritableDraft<KdsState>) => void;
152
+ toggleKdsAllDay: (state: import("immer/dist/internal").WritableDraft<KdsState>) => void;
153
+ toggleKdsAllDayMods: (state: import("immer/dist/internal").WritableDraft<KdsState>) => void;
150
154
  setKdsOrder: (state: import("immer/dist/internal").WritableDraft<KdsState>, action: {
151
155
  payload: any;
152
156
  type: string;
@@ -212,12 +216,14 @@ export declare const kdsSlice: import("@reduxjs/toolkit").Slice<KdsState, {
212
216
  search: string | null;
213
217
  businessDate: DateString | null;
214
218
  summary: boolean;
219
+ allDay: boolean;
220
+ allDayMods: boolean;
215
221
  loading: RequestStatus;
216
222
  error: import("immer/dist/internal").WritableDraft<RequestErrorAPI> | null | undefined;
217
223
  counts: import("immer/dist/internal").WritableDraft<OrderCounts>;
218
224
  };
219
225
  }, ReducerType.Kds>;
220
- export declare const resetkds: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<string>, setKdsItemTypes: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, string>, setKdsPrepStations: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, string>, setKdsPrepStationId: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, string>, setKdsOrderType: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, string>, setKdsColumns: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, string>, setKdsBoxes: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, string>, setKdsCardWidth: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, string>, setKdsFontSize: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, string>, setKdsPage: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, string>, setKdsView: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, string>, setKdsBusinessDate: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, string>, setKdsSearch: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, string>, toggleKdsSummary: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<string>, setKdsOrder: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, string>, replaceKdsOrder: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, string>;
226
+ export declare const resetkds: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<string>, setKdsItemTypes: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, string>, setKdsPrepStations: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, string>, setKdsPrepStationId: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, string>, setKdsOrderType: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, string>, setKdsColumns: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, string>, setKdsBoxes: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, string>, setKdsCardWidth: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, string>, setKdsFontSize: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, string>, setKdsPage: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, string>, setKdsView: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, string>, setKdsBusinessDate: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, string>, setKdsSearch: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, string>, toggleKdsSummary: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<string>, toggleKdsAllDay: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<string>, toggleKdsAllDayMods: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<string>, setKdsOrder: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, string>, replaceKdsOrder: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, string>;
221
227
  export declare const selectKds: (state: AppState) => KdsState;
222
228
  export declare const selectKdsItemTypes: (state: AppState) => ItemTypes | null;
223
229
  export declare const selectKdsPrepStations: (state: AppState) => PrepStations;
@@ -253,7 +259,9 @@ export declare const selectKdsFutureOrders: (state: AppState) => {
253
259
  };
254
260
  export declare const selectKdsFutureCount: (state: AppState) => number;
255
261
  export declare const selectKdsPrepStationOrders: (state: AppState) => OrdersKds;
262
+ export declare const selectKdsPrepStationAllDay: (state: AppState) => Record<string, import("../types").OrderItemCount>;
256
263
  export declare const selectKdsPrepStationAllIncomplete: (state: AppState) => OrdersKds;
264
+ export declare const selectKdsPrepStationAllIncompleteToday: (state: AppState) => OrdersKds;
257
265
  export declare const selectKdsOrdersCounts: (state: AppState) => {
258
266
  current: Record<string, number> | null;
259
267
  future: Record<string, number> | null;
@@ -1,8 +1,8 @@
1
1
  "use strict";
2
2
  var _a;
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
- exports.selectKdsFutureOrders = exports.selectKdsCurrentCount = exports.selectKdsCurrentOrders = exports.selectKdsOrders = exports.selectKdsOrder = exports.selectKdsBusinessDate = exports.selectKdsView = exports.selectKdsPageIndex = exports.selectKdsPage = exports.selectKdsSummary = exports.selectKdsFontSize = exports.selectKdsCardWidth = exports.selectKdsBoxes = exports.selectKdsColumns = exports.selectKdsOrderType = exports.selectKdsPrepType = exports.selectKdsPrepStation = exports.selectKdsPrepStationId = exports.selectKdsPrepStations = exports.selectKdsItemTypes = exports.selectKds = exports.replaceKdsOrder = exports.setKdsOrder = exports.toggleKdsSummary = exports.setKdsSearch = exports.setKdsBusinessDate = exports.setKdsView = exports.setKdsPage = exports.setKdsFontSize = exports.setKdsCardWidth = exports.setKdsBoxes = exports.setKdsColumns = exports.setKdsOrderType = exports.setKdsPrepStationId = exports.setKdsPrepStations = exports.setKdsItemTypes = exports.resetkds = exports.kdsSlice = exports.completeTicket = exports.doneTicket = exports.resetTicket = exports.updateTicket = exports.printTicket = exports.resetTickets = exports.updateTickets = exports.printTickets = exports.printKdsOrder = exports.updateKdsOrder = exports.fetchKdsOrders = exports.KdsActionType = void 0;
5
- exports.kdsReducer = exports.selectKdsOrdersCounts = exports.selectKdsPrepStationAllIncomplete = exports.selectKdsPrepStationOrders = exports.selectKdsFutureCount = void 0;
4
+ exports.selectKdsCurrentOrders = exports.selectKdsOrders = exports.selectKdsOrder = exports.selectKdsBusinessDate = exports.selectKdsView = exports.selectKdsPageIndex = exports.selectKdsPage = exports.selectKdsSummary = exports.selectKdsFontSize = exports.selectKdsCardWidth = exports.selectKdsBoxes = exports.selectKdsColumns = exports.selectKdsOrderType = exports.selectKdsPrepType = exports.selectKdsPrepStation = exports.selectKdsPrepStationId = exports.selectKdsPrepStations = exports.selectKdsItemTypes = exports.selectKds = exports.replaceKdsOrder = exports.setKdsOrder = exports.toggleKdsAllDayMods = exports.toggleKdsAllDay = exports.toggleKdsSummary = exports.setKdsSearch = exports.setKdsBusinessDate = exports.setKdsView = exports.setKdsPage = exports.setKdsFontSize = exports.setKdsCardWidth = exports.setKdsBoxes = exports.setKdsColumns = exports.setKdsOrderType = exports.setKdsPrepStationId = exports.setKdsPrepStations = exports.setKdsItemTypes = exports.resetkds = exports.kdsSlice = exports.completeTicket = exports.doneTicket = exports.resetTicket = exports.updateTicket = exports.printTicket = exports.resetTickets = exports.updateTickets = exports.printTickets = exports.printKdsOrder = exports.updateKdsOrder = exports.fetchKdsOrders = exports.KdsActionType = void 0;
5
+ exports.kdsReducer = exports.selectKdsOrdersCounts = exports.selectKdsPrepStationAllIncompleteToday = exports.selectKdsPrepStationAllIncomplete = exports.selectKdsPrepStationAllDay = exports.selectKdsPrepStationOrders = exports.selectKdsFutureCount = exports.selectKdsFutureOrders = exports.selectKdsCurrentCount = void 0;
6
6
  var tslib_1 = require("tslib");
7
7
  var toolkit_1 = require("@reduxjs/toolkit");
8
8
  var types_1 = require("./types");
@@ -22,6 +22,8 @@ var initialState = {
22
22
  search: null,
23
23
  businessDate: null,
24
24
  summary: true,
25
+ allDay: true,
26
+ allDayMods: true,
25
27
  orders: [],
26
28
  loading: 'idle',
27
29
  error: null,
@@ -371,6 +373,12 @@ exports.kdsSlice = (0, toolkit_1.createSlice)({
371
373
  toggleKdsSummary: function (state) {
372
374
  state.summary = !state.summary;
373
375
  },
376
+ toggleKdsAllDay: function (state) {
377
+ state.allDay = !state.allDay;
378
+ },
379
+ toggleKdsAllDayMods: function (state) {
380
+ state.allDayMods = !state.allDayMods;
381
+ },
374
382
  setKdsOrder: function (state, action) {
375
383
  state.order = action.payload;
376
384
  },
@@ -499,7 +507,7 @@ exports.kdsSlice = (0, toolkit_1.createSlice)({
499
507
  });
500
508
  }
501
509
  });
502
- exports.resetkds = (_a = exports.kdsSlice.actions, _a.resetkds), exports.setKdsItemTypes = _a.setKdsItemTypes, exports.setKdsPrepStations = _a.setKdsPrepStations, exports.setKdsPrepStationId = _a.setKdsPrepStationId, exports.setKdsOrderType = _a.setKdsOrderType, exports.setKdsColumns = _a.setKdsColumns, exports.setKdsBoxes = _a.setKdsBoxes, exports.setKdsCardWidth = _a.setKdsCardWidth, exports.setKdsFontSize = _a.setKdsFontSize, exports.setKdsPage = _a.setKdsPage, exports.setKdsView = _a.setKdsView, exports.setKdsBusinessDate = _a.setKdsBusinessDate, exports.setKdsSearch = _a.setKdsSearch, exports.toggleKdsSummary = _a.toggleKdsSummary, exports.setKdsOrder = _a.setKdsOrder, exports.replaceKdsOrder = _a.replaceKdsOrder;
510
+ exports.resetkds = (_a = exports.kdsSlice.actions, _a.resetkds), exports.setKdsItemTypes = _a.setKdsItemTypes, exports.setKdsPrepStations = _a.setKdsPrepStations, exports.setKdsPrepStationId = _a.setKdsPrepStationId, exports.setKdsOrderType = _a.setKdsOrderType, exports.setKdsColumns = _a.setKdsColumns, exports.setKdsBoxes = _a.setKdsBoxes, exports.setKdsCardWidth = _a.setKdsCardWidth, exports.setKdsFontSize = _a.setKdsFontSize, exports.setKdsPage = _a.setKdsPage, exports.setKdsView = _a.setKdsView, exports.setKdsBusinessDate = _a.setKdsBusinessDate, exports.setKdsSearch = _a.setKdsSearch, exports.toggleKdsSummary = _a.toggleKdsSummary, exports.toggleKdsAllDay = _a.toggleKdsAllDay, exports.toggleKdsAllDayMods = _a.toggleKdsAllDayMods, exports.setKdsOrder = _a.setKdsOrder, exports.replaceKdsOrder = _a.replaceKdsOrder;
503
511
  var selectKds = function (state) { return state.kds; };
504
512
  exports.selectKds = selectKds;
505
513
  var selectKdsItemTypes = function (state) { return state.kds.itemTypes; };
@@ -588,6 +596,12 @@ var selectKdsPrepStationOrders = function (state) {
588
596
  return (0, utils_1.makeOrdersForPrepStation)(orders, prepStation, orderType);
589
597
  };
590
598
  exports.selectKdsPrepStationOrders = selectKdsPrepStationOrders;
599
+ var selectKdsPrepStationAllDay = function (state) {
600
+ var orders = (0, exports.selectKdsPrepStationOrders)(state);
601
+ var withMods = state.kds.allDayMods;
602
+ return (0, utils_1.makeItemCounts)(orders, withMods);
603
+ };
604
+ exports.selectKdsPrepStationAllDay = selectKdsPrepStationAllDay;
591
605
  var selectKdsPrepStationAllIncomplete = function (state) {
592
606
  var _a = state.kds, prepStations = _a.prepStations, prepStationId = _a.prepStationId, orders = _a.orders;
593
607
  var prepStation = prepStations.find(function (i) { return i.prep_station_id === prepStationId; });
@@ -596,6 +610,11 @@ var selectKdsPrepStationAllIncomplete = function (state) {
596
610
  return (0, utils_1.makeOrdersForPrepStation)(orders, prepStation, 'INCOMPLETE');
597
611
  };
598
612
  exports.selectKdsPrepStationAllIncomplete = selectKdsPrepStationAllIncomplete;
613
+ var selectKdsPrepStationAllIncompleteToday = function (state) {
614
+ var orders = (0, exports.selectKdsPrepStationAllIncomplete)(state);
615
+ return (0, utils_1.filterOrdersToday)(orders);
616
+ };
617
+ exports.selectKdsPrepStationAllIncompleteToday = selectKdsPrepStationAllIncompleteToday;
599
618
  var selectKdsOrdersCounts = function (state) {
600
619
  var _a = state.kds.counts, current = _a.current, future = _a.future, qa = _a.qa;
601
620
  return { current: current, future: future, qa: qa };
@@ -395,3 +395,7 @@ export interface OrderKdsStatus {
395
395
  DONE: boolean;
396
396
  COMPLETED: boolean;
397
397
  }
398
+ export interface OrderItemCount {
399
+ item: OrderItem;
400
+ count: number;
401
+ }
@@ -133,7 +133,7 @@ export declare const makeCartItem: (item: MenuItem, isEdit?: boolean, soldOut?:
133
133
  upsellItems: number[];
134
134
  similarItems: number[];
135
135
  };
136
- export declare const makeCartItemSignature: (item: CartItem) => string;
136
+ export declare const makeCartItemSignature: (item: CartItem, withNotes?: boolean) => string;
137
137
  export declare const addItem: (cart: Cart, item: CartItem) => {
138
138
  cart: Cart;
139
139
  cartCounts: {};
@@ -216,7 +216,8 @@ var makeCartItem = function (item, isEdit, soldOut, simpleItem, hasPoints) {
216
216
  return pricedItem;
217
217
  };
218
218
  exports.makeCartItem = makeCartItem;
219
- var makeCartItemSignature = function (item) {
219
+ var makeCartItemSignature = function (item, withNotes) {
220
+ if (withNotes === void 0) { withNotes = true; }
220
221
  var optionIds = item.groups
221
222
  .reduce(function (arr, group) {
222
223
  var ids = group.options
@@ -230,8 +231,7 @@ var makeCartItemSignature = function (item) {
230
231
  }, [])
231
232
  .sort(function (a, b) { return a - b; });
232
233
  var itemIds = tslib_1.__spreadArray([item.id], optionIds, true).join('.');
233
- var signature = "".concat(itemIds, ".").concat(item.madeFor, ".").concat(item.notes);
234
- return signature;
234
+ return withNotes ? "".concat(itemIds, ".").concat(item.madeFor, ".").concat(item.notes) : itemIds;
235
235
  };
236
236
  exports.makeCartItemSignature = makeCartItemSignature;
237
237
  var addItem = function (cart, item) {
@@ -1,4 +1,4 @@
1
- import { FetchOrdersAPIArgs, FetchOrdersArgs, ItemType, ItemTypes, KdsOrderType, KdsStationCounts, KdsStationOrderTypeCount, ModifiersMetadata, OrderBuckets, OrderCart, OrderItem, OrderKds, Orders, OrdersKds, OrderTickets, OrderTimes, PrepStation, PrepStations, PrepStatus, PrepStatusMap, Store, TicketGroups, Timezone } from '../types';
1
+ import { FetchOrdersAPIArgs, FetchOrdersArgs, ItemType, ItemTypes, KdsOrderType, KdsStationCounts, KdsStationOrderTypeCount, ModifiersMetadata, OrderBuckets, OrderCart, OrderItem, OrderItemCount, OrderKds, Orders, OrdersKds, OrderTickets, OrderTimes, PrepStation, PrepStations, 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;
@@ -13,7 +13,10 @@ export declare const makeIncompleteOrders: (orders: OrdersKds) => OrdersKds;
13
13
  export declare const makeCompletedOrders: (orders: OrdersKds) => OrdersKds;
14
14
  export declare const makeOrdersOfType: (orders: OrdersKds, orderType: KdsOrderType) => OrdersKds;
15
15
  export declare const filterOrdersByItemType: (orders: OrdersKds, itemTypeIds: number[] | null) => OrdersKds;
16
+ export declare const filterOrdersToday: (orders: OrdersKds) => OrdersKds;
16
17
  export declare const makeOrdersForPrepStation: (orders: OrdersKds, prepStation: PrepStation, orderType: KdsOrderType) => OrdersKds;
18
+ export declare const makeOrderItemSignature: (item: OrderItem, withNotes?: boolean) => string;
19
+ export declare const makeItemCounts: (orders: OrdersKds, withMods?: boolean) => Record<string, OrderItemCount>;
17
20
  export declare const makeKdsCounts: (itemTypes: ItemTypes | null, orders: OrdersKds | null) => {
18
21
  current: null;
19
22
  future: null;
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.makeOrderTimes = 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.makeOrdersForPrepStation = exports.filterOrdersByItemType = exports.makeOrdersOfType = exports.makeCompletedOrders = exports.makeIncompleteOrders = exports.makeFutureOrders = exports.makeCurrentOrders = exports.makeKdsOrders = exports.isFutureOrder = exports.isCompleted = exports.notCompleted = exports.isDone = exports.notDone = exports.makeFetchOrdersArgs = exports.prepStatus = void 0;
3
+ exports.makeOrderTimes = 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.filterOrdersByItemType = exports.makeOrdersOfType = exports.makeCompletedOrders = exports.makeIncompleteOrders = exports.makeFutureOrders = exports.makeCurrentOrders = exports.makeKdsOrders = exports.isFutureOrder = exports.isCompleted = exports.notCompleted = exports.isDone = exports.notDone = exports.makeFetchOrdersArgs = exports.prepStatus = void 0;
4
4
  var tslib_1 = require("tslib");
5
5
  var datetimes_1 = require("./datetimes");
6
6
  exports.prepStatus = {
@@ -143,6 +143,17 @@ var filterOrdersByItemType = function (orders, itemTypeIds) {
143
143
  .filter(function (i) { return i.tickets.length; });
144
144
  };
145
145
  exports.filterOrdersByItemType = filterOrdersByItemType;
146
+ var filterOrdersToday = function (orders) {
147
+ if (!orders.length)
148
+ return [];
149
+ var tz = datetimes_1.timezoneMap[orders[0].timezone];
150
+ var today = (0, datetimes_1.currentLocalDateStr)(tz);
151
+ return orders.filter(function (i) {
152
+ var requesteDateStr = (0, datetimes_1.isoToDateStr)(i.requested_at, tz, datetimes_1.DATE);
153
+ return today === requesteDateStr;
154
+ });
155
+ };
156
+ exports.filterOrdersToday = filterOrdersToday;
146
157
  var makeOrdersForPrepStation = function (orders, prepStation, orderType) {
147
158
  var item_type_ids = prepStation.item_type_ids, prep_type = prepStation.prep_type, expo_done_only = prepStation.expo_done_only;
148
159
  var ordersOfType = (0, exports.makeOrdersOfType)(orders, orderType);
@@ -162,6 +173,39 @@ var makeOrdersForPrepStation = function (orders, prepStation, orderType) {
162
173
  : filtered.filter(function (i) { return i.tickets.filter(function (t) { return (0, exports.notDone)(t.ticket_status); }).length; });
163
174
  };
164
175
  exports.makeOrdersForPrepStation = makeOrdersForPrepStation;
176
+ var makeOrderItemSignature = function (item, withNotes) {
177
+ if (withNotes === void 0) { withNotes = false; }
178
+ var groups = item.groups || [];
179
+ var optionIds = groups
180
+ .reduce(function (arr, group) {
181
+ var ids = group.options
182
+ .filter(function (o) { return o.quantity > 0; })
183
+ .reduce(function (optionsArr, o) {
184
+ var optionArr = new Array(o.quantity);
185
+ optionArr.fill(o.id);
186
+ return tslib_1.__spreadArray(tslib_1.__spreadArray([], optionsArr, true), optionArr, true);
187
+ }, []);
188
+ return tslib_1.__spreadArray(tslib_1.__spreadArray([], arr, true), ids, true);
189
+ }, [])
190
+ .sort(function (a, b) { return a - b; });
191
+ var itemIds = tslib_1.__spreadArray([item.id], optionIds, true).join('.');
192
+ return withNotes ? "".concat(itemIds, ".").concat(item.made_for, ".").concat(item.notes) : itemIds;
193
+ };
194
+ exports.makeOrderItemSignature = makeOrderItemSignature;
195
+ var makeItemCounts = function (orders, withMods) {
196
+ if (withMods === void 0) { withMods = true; }
197
+ return orders.reduce(function (obj, order) {
198
+ order.cart.forEach(function (item) {
199
+ var itemId = withMods ? (0, exports.makeOrderItemSignature)(item) : "".concat(item.id);
200
+ var existing = obj[itemId];
201
+ obj[itemId] = existing
202
+ ? { item: item, count: (existing.count += item.quantity) }
203
+ : { item: item, count: item.quantity };
204
+ });
205
+ return obj;
206
+ }, {});
207
+ };
208
+ exports.makeItemCounts = makeItemCounts;
165
209
  var updateCounts = function (counts, ticketCounts) {
166
210
  // console.log('BEFORE', counts, ticketCounts)
167
211
  var updated = Object.entries(counts).reduce(function (obj, _a) {
@@ -15,6 +15,8 @@ export interface KdsState {
15
15
  search: string | null;
16
16
  businessDate: DateString | null;
17
17
  summary: boolean;
18
+ allDay: boolean;
19
+ allDayMods: boolean;
18
20
  orders: OrdersKds;
19
21
  loading: RequestStatus;
20
22
  error: RequestError;
@@ -147,6 +149,8 @@ export declare const kdsSlice: import("@reduxjs/toolkit").Slice<KdsState, {
147
149
  type: string;
148
150
  }) => void;
149
151
  toggleKdsSummary: (state: import("immer/dist/internal").WritableDraft<KdsState>) => void;
152
+ toggleKdsAllDay: (state: import("immer/dist/internal").WritableDraft<KdsState>) => void;
153
+ toggleKdsAllDayMods: (state: import("immer/dist/internal").WritableDraft<KdsState>) => void;
150
154
  setKdsOrder: (state: import("immer/dist/internal").WritableDraft<KdsState>, action: {
151
155
  payload: any;
152
156
  type: string;
@@ -212,12 +216,14 @@ export declare const kdsSlice: import("@reduxjs/toolkit").Slice<KdsState, {
212
216
  search: string | null;
213
217
  businessDate: DateString | null;
214
218
  summary: boolean;
219
+ allDay: boolean;
220
+ allDayMods: boolean;
215
221
  loading: RequestStatus;
216
222
  error: import("immer/dist/internal").WritableDraft<RequestErrorAPI> | null | undefined;
217
223
  counts: import("immer/dist/internal").WritableDraft<OrderCounts>;
218
224
  };
219
225
  }, ReducerType.Kds>;
220
- export declare const resetkds: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<string>, setKdsItemTypes: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, string>, setKdsPrepStations: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, string>, setKdsPrepStationId: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, string>, setKdsOrderType: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, string>, setKdsColumns: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, string>, setKdsBoxes: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, string>, setKdsCardWidth: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, string>, setKdsFontSize: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, string>, setKdsPage: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, string>, setKdsView: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, string>, setKdsBusinessDate: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, string>, setKdsSearch: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, string>, toggleKdsSummary: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<string>, setKdsOrder: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, string>, replaceKdsOrder: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, string>;
226
+ export declare const resetkds: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<string>, setKdsItemTypes: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, string>, setKdsPrepStations: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, string>, setKdsPrepStationId: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, string>, setKdsOrderType: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, string>, setKdsColumns: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, string>, setKdsBoxes: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, string>, setKdsCardWidth: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, string>, setKdsFontSize: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, string>, setKdsPage: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, string>, setKdsView: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, string>, setKdsBusinessDate: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, string>, setKdsSearch: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, string>, toggleKdsSummary: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<string>, toggleKdsAllDay: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<string>, toggleKdsAllDayMods: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<string>, setKdsOrder: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, string>, replaceKdsOrder: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, string>;
221
227
  export declare const selectKds: (state: AppState) => KdsState;
222
228
  export declare const selectKdsItemTypes: (state: AppState) => ItemTypes | null;
223
229
  export declare const selectKdsPrepStations: (state: AppState) => PrepStations;
@@ -253,7 +259,9 @@ export declare const selectKdsFutureOrders: (state: AppState) => {
253
259
  };
254
260
  export declare const selectKdsFutureCount: (state: AppState) => number;
255
261
  export declare const selectKdsPrepStationOrders: (state: AppState) => OrdersKds;
262
+ export declare const selectKdsPrepStationAllDay: (state: AppState) => Record<string, import("../types").OrderItemCount>;
256
263
  export declare const selectKdsPrepStationAllIncomplete: (state: AppState) => OrdersKds;
264
+ export declare const selectKdsPrepStationAllIncompleteToday: (state: AppState) => OrdersKds;
257
265
  export declare const selectKdsOrdersCounts: (state: AppState) => {
258
266
  current: Record<string, number> | null;
259
267
  future: Record<string, number> | null;
@@ -2,7 +2,7 @@ var _a;
2
2
  import { __assign, __awaiter, __generator } from "tslib";
3
3
  import { createAsyncThunk, createSlice } from '@reduxjs/toolkit';
4
4
  import { ReducerType } from './types';
5
- import { currentLocalDate, isoToDate, makeFetchOrdersArgs, makeKdsOrders, makeKdsStationCounts, makeOrdersForPrepStation, notDone, timezoneMap } from '../utils';
5
+ import { currentLocalDate, filterOrdersToday, isoToDate, makeFetchOrdersArgs, makeItemCounts, makeKdsOrders, makeKdsStationCounts, makeOrdersForPrepStation, notDone, timezoneMap } from '../utils';
6
6
  import { addAlert } from './alerts';
7
7
  var initialState = {
8
8
  itemTypes: null,
@@ -18,6 +18,8 @@ var initialState = {
18
18
  search: null,
19
19
  businessDate: null,
20
20
  summary: true,
21
+ allDay: true,
22
+ allDayMods: true,
21
23
  orders: [],
22
24
  loading: 'idle',
23
25
  error: null,
@@ -367,6 +369,12 @@ export var kdsSlice = createSlice({
367
369
  toggleKdsSummary: function (state) {
368
370
  state.summary = !state.summary;
369
371
  },
372
+ toggleKdsAllDay: function (state) {
373
+ state.allDay = !state.allDay;
374
+ },
375
+ toggleKdsAllDayMods: function (state) {
376
+ state.allDayMods = !state.allDayMods;
377
+ },
370
378
  setKdsOrder: function (state, action) {
371
379
  state.order = action.payload;
372
380
  },
@@ -495,7 +503,7 @@ export var kdsSlice = createSlice({
495
503
  });
496
504
  }
497
505
  });
498
- export var resetkds = (_a = kdsSlice.actions, _a.resetkds), setKdsItemTypes = _a.setKdsItemTypes, setKdsPrepStations = _a.setKdsPrepStations, setKdsPrepStationId = _a.setKdsPrepStationId, setKdsOrderType = _a.setKdsOrderType, setKdsColumns = _a.setKdsColumns, setKdsBoxes = _a.setKdsBoxes, setKdsCardWidth = _a.setKdsCardWidth, setKdsFontSize = _a.setKdsFontSize, setKdsPage = _a.setKdsPage, setKdsView = _a.setKdsView, setKdsBusinessDate = _a.setKdsBusinessDate, setKdsSearch = _a.setKdsSearch, toggleKdsSummary = _a.toggleKdsSummary, setKdsOrder = _a.setKdsOrder, replaceKdsOrder = _a.replaceKdsOrder;
506
+ export var resetkds = (_a = kdsSlice.actions, _a.resetkds), setKdsItemTypes = _a.setKdsItemTypes, setKdsPrepStations = _a.setKdsPrepStations, setKdsPrepStationId = _a.setKdsPrepStationId, setKdsOrderType = _a.setKdsOrderType, setKdsColumns = _a.setKdsColumns, setKdsBoxes = _a.setKdsBoxes, setKdsCardWidth = _a.setKdsCardWidth, setKdsFontSize = _a.setKdsFontSize, setKdsPage = _a.setKdsPage, setKdsView = _a.setKdsView, setKdsBusinessDate = _a.setKdsBusinessDate, setKdsSearch = _a.setKdsSearch, toggleKdsSummary = _a.toggleKdsSummary, toggleKdsAllDay = _a.toggleKdsAllDay, toggleKdsAllDayMods = _a.toggleKdsAllDayMods, setKdsOrder = _a.setKdsOrder, replaceKdsOrder = _a.replaceKdsOrder;
499
507
  export var selectKds = function (state) { return state.kds; };
500
508
  export var selectKdsItemTypes = function (state) { return state.kds.itemTypes; };
501
509
  export var selectKdsPrepStations = function (state) { return state.kds.prepStations; };
@@ -561,6 +569,11 @@ export var selectKdsPrepStationOrders = function (state) {
561
569
  return [];
562
570
  return makeOrdersForPrepStation(orders, prepStation, orderType);
563
571
  };
572
+ export var selectKdsPrepStationAllDay = function (state) {
573
+ var orders = selectKdsPrepStationOrders(state);
574
+ var withMods = state.kds.allDayMods;
575
+ return makeItemCounts(orders, withMods);
576
+ };
564
577
  export var selectKdsPrepStationAllIncomplete = function (state) {
565
578
  var _a = state.kds, prepStations = _a.prepStations, prepStationId = _a.prepStationId, orders = _a.orders;
566
579
  var prepStation = prepStations.find(function (i) { return i.prep_station_id === prepStationId; });
@@ -568,6 +581,10 @@ export var selectKdsPrepStationAllIncomplete = function (state) {
568
581
  return [];
569
582
  return makeOrdersForPrepStation(orders, prepStation, 'INCOMPLETE');
570
583
  };
584
+ export var selectKdsPrepStationAllIncompleteToday = function (state) {
585
+ var orders = selectKdsPrepStationAllIncomplete(state);
586
+ return filterOrdersToday(orders);
587
+ };
571
588
  export var selectKdsOrdersCounts = function (state) {
572
589
  var _a = state.kds.counts, current = _a.current, future = _a.future, qa = _a.qa;
573
590
  return { current: current, future: future, qa: qa };
@@ -395,3 +395,7 @@ export interface OrderKdsStatus {
395
395
  DONE: boolean;
396
396
  COMPLETED: boolean;
397
397
  }
398
+ export interface OrderItemCount {
399
+ item: OrderItem;
400
+ count: number;
401
+ }
@@ -133,7 +133,7 @@ export declare const makeCartItem: (item: MenuItem, isEdit?: boolean, soldOut?:
133
133
  upsellItems: number[];
134
134
  similarItems: number[];
135
135
  };
136
- export declare const makeCartItemSignature: (item: CartItem) => string;
136
+ export declare const makeCartItemSignature: (item: CartItem, withNotes?: boolean) => string;
137
137
  export declare const addItem: (cart: Cart, item: CartItem) => {
138
138
  cart: Cart;
139
139
  cartCounts: {};
@@ -208,7 +208,8 @@ export var makeCartItem = function (item, isEdit, soldOut, simpleItem, hasPoints
208
208
  var pricedItem = calcPrices(orderItem);
209
209
  return pricedItem;
210
210
  };
211
- export var makeCartItemSignature = function (item) {
211
+ export var makeCartItemSignature = function (item, withNotes) {
212
+ if (withNotes === void 0) { withNotes = true; }
212
213
  var optionIds = item.groups
213
214
  .reduce(function (arr, group) {
214
215
  var ids = group.options
@@ -222,8 +223,7 @@ export var makeCartItemSignature = function (item) {
222
223
  }, [])
223
224
  .sort(function (a, b) { return a - b; });
224
225
  var itemIds = __spreadArray([item.id], optionIds, true).join('.');
225
- var signature = "".concat(itemIds, ".").concat(item.madeFor, ".").concat(item.notes);
226
- return signature;
226
+ return withNotes ? "".concat(itemIds, ".").concat(item.madeFor, ".").concat(item.notes) : itemIds;
227
227
  };
228
228
  export var addItem = function (cart, item) {
229
229
  if (typeof item.index === 'undefined') {
@@ -1,4 +1,4 @@
1
- import { FetchOrdersAPIArgs, FetchOrdersArgs, ItemType, ItemTypes, KdsOrderType, KdsStationCounts, KdsStationOrderTypeCount, ModifiersMetadata, OrderBuckets, OrderCart, OrderItem, OrderKds, Orders, OrdersKds, OrderTickets, OrderTimes, PrepStation, PrepStations, PrepStatus, PrepStatusMap, Store, TicketGroups, Timezone } from '../types';
1
+ import { FetchOrdersAPIArgs, FetchOrdersArgs, ItemType, ItemTypes, KdsOrderType, KdsStationCounts, KdsStationOrderTypeCount, ModifiersMetadata, OrderBuckets, OrderCart, OrderItem, OrderItemCount, OrderKds, Orders, OrdersKds, OrderTickets, OrderTimes, PrepStation, PrepStations, 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;
@@ -13,7 +13,10 @@ export declare const makeIncompleteOrders: (orders: OrdersKds) => OrdersKds;
13
13
  export declare const makeCompletedOrders: (orders: OrdersKds) => OrdersKds;
14
14
  export declare const makeOrdersOfType: (orders: OrdersKds, orderType: KdsOrderType) => OrdersKds;
15
15
  export declare const filterOrdersByItemType: (orders: OrdersKds, itemTypeIds: number[] | null) => OrdersKds;
16
+ export declare const filterOrdersToday: (orders: OrdersKds) => OrdersKds;
16
17
  export declare const makeOrdersForPrepStation: (orders: OrdersKds, prepStation: PrepStation, orderType: KdsOrderType) => OrdersKds;
18
+ export declare const makeOrderItemSignature: (item: OrderItem, withNotes?: boolean) => string;
19
+ export declare const makeItemCounts: (orders: OrdersKds, withMods?: boolean) => Record<string, OrderItemCount>;
17
20
  export declare const makeKdsCounts: (itemTypes: ItemTypes | null, orders: OrdersKds | null) => {
18
21
  current: null;
19
22
  future: null;
@@ -1,5 +1,5 @@
1
1
  import { __assign, __spreadArray } from "tslib";
2
- import { currentLocalDate, formatDate, isoToDate, makeIntervals, minutesLeft, timezoneMap } from './datetimes';
2
+ import { currentLocalDate, currentLocalDateStr, DATE, formatDate, isoToDate, isoToDateStr, makeIntervals, minutesLeft, timezoneMap } from './datetimes';
3
3
  export var prepStatus = {
4
4
  TODO: 'TODO',
5
5
  IN_PROGRESS: 'IN_PROGRESS',
@@ -127,6 +127,16 @@ export var filterOrdersByItemType = function (orders, itemTypeIds) {
127
127
  }, [])
128
128
  .filter(function (i) { return i.tickets.length; });
129
129
  };
130
+ export var filterOrdersToday = function (orders) {
131
+ if (!orders.length)
132
+ return [];
133
+ var tz = timezoneMap[orders[0].timezone];
134
+ var today = currentLocalDateStr(tz);
135
+ return orders.filter(function (i) {
136
+ var requesteDateStr = isoToDateStr(i.requested_at, tz, DATE);
137
+ return today === requesteDateStr;
138
+ });
139
+ };
130
140
  export var makeOrdersForPrepStation = function (orders, prepStation, orderType) {
131
141
  var item_type_ids = prepStation.item_type_ids, prep_type = prepStation.prep_type, expo_done_only = prepStation.expo_done_only;
132
142
  var ordersOfType = makeOrdersOfType(orders, orderType);
@@ -145,6 +155,37 @@ export var makeOrdersForPrepStation = function (orders, prepStation, orderType)
145
155
  ? filtered
146
156
  : filtered.filter(function (i) { return i.tickets.filter(function (t) { return notDone(t.ticket_status); }).length; });
147
157
  };
158
+ export var makeOrderItemSignature = function (item, withNotes) {
159
+ if (withNotes === void 0) { withNotes = false; }
160
+ var groups = item.groups || [];
161
+ var optionIds = groups
162
+ .reduce(function (arr, group) {
163
+ var ids = group.options
164
+ .filter(function (o) { return o.quantity > 0; })
165
+ .reduce(function (optionsArr, o) {
166
+ var optionArr = new Array(o.quantity);
167
+ optionArr.fill(o.id);
168
+ return __spreadArray(__spreadArray([], optionsArr, true), optionArr, true);
169
+ }, []);
170
+ return __spreadArray(__spreadArray([], arr, true), ids, true);
171
+ }, [])
172
+ .sort(function (a, b) { return a - b; });
173
+ var itemIds = __spreadArray([item.id], optionIds, true).join('.');
174
+ return withNotes ? "".concat(itemIds, ".").concat(item.made_for, ".").concat(item.notes) : itemIds;
175
+ };
176
+ export var makeItemCounts = function (orders, withMods) {
177
+ if (withMods === void 0) { withMods = true; }
178
+ return orders.reduce(function (obj, order) {
179
+ order.cart.forEach(function (item) {
180
+ var itemId = withMods ? makeOrderItemSignature(item) : "".concat(item.id);
181
+ var existing = obj[itemId];
182
+ obj[itemId] = existing
183
+ ? { item: item, count: (existing.count += item.quantity) }
184
+ : { item: item, count: item.quantity };
185
+ });
186
+ return obj;
187
+ }, {});
188
+ };
148
189
  var updateCounts = function (counts, ticketCounts) {
149
190
  // console.log('BEFORE', counts, ticketCounts)
150
191
  var updated = Object.entries(counts).reduce(function (obj, _a) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@open-tender/store",
3
- "version": "0.3.39",
3
+ "version": "0.3.41",
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",