@open-tender/store 0.8.11 → 0.9.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.
- package/dist/cjs/services/api.d.ts +2 -1
- package/dist/cjs/slices/checkout.d.ts +16 -15
- package/dist/cjs/slices/checkout.js +62 -40
- package/dist/cjs/slices/kiosk.d.ts +1 -1
- package/dist/cjs/slices/kiosk.js +1 -1
- package/dist/cjs/slices/menu.d.ts +1 -1
- package/dist/cjs/slices/menuPages.d.ts +3 -3
- package/dist/cjs/slices/order.d.ts +8 -5
- package/dist/cjs/slices/order.js +10 -3
- package/dist/cjs/types/api/checkout.d.ts +1 -2
- package/dist/esm/services/api.d.ts +2 -1
- package/dist/esm/slices/checkout.d.ts +16 -15
- package/dist/esm/slices/checkout.js +56 -33
- package/dist/esm/slices/kiosk.d.ts +1 -1
- package/dist/esm/slices/kiosk.js +1 -1
- package/dist/esm/slices/menu.d.ts +1 -1
- package/dist/esm/slices/menuPages.d.ts +3 -3
- package/dist/esm/slices/order.d.ts +8 -5
- package/dist/esm/slices/order.js +7 -2
- package/dist/esm/types/api/checkout.d.ts +1 -2
- package/package.json +4 -3
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { CustomerCheckout, Menu, OrderCreate, OrderTender, OrderType, ServiceType } from '@open-tender/types';
|
|
2
|
+
import { Arrivals, CashEvent, CashSummary, CustomerIdentifier, DeviceRead, Discount, Discounts, Employee, Employees, PosSettingType, ErrorAlert, ErrorAlerts, FetchOrdersAPIArgs, GiftCardBalance, GiftCardCredit, InternalSettings, ItemTypes, KioskConfig, LevelUp, MenuColors, MenuPages, OfflineAuths, OfflineAuthsResult, Order, Orders, OrderUpdate, Punch, Refund, RequestedAt, RevenueCenter, SelectOptions, Settings, Store, Surcharges, Taxes, Tender, TicketStatusUpdate, TicketsUpdate, TicketUpdate } from '../types';
|
|
2
3
|
export interface InitAPI {
|
|
3
4
|
apiUrl: string;
|
|
4
5
|
posTerminalId?: number;
|
|
@@ -1,24 +1,26 @@
|
|
|
1
|
-
import { CustomerCheckout, Discounts, IdentifyCustomer, Money, Order, OrderCreateGiftCard, OrderCreatePoints, OrderTender, RequestError, RequestStatus, Surcharges, Taxes, Tender } from '../types';
|
|
2
1
|
import { AppState } from '../app';
|
|
2
|
+
import { CustomerCheckout, IdentifyCustomer, Money, OrderCreateDiscounts, OrderCreateGiftCards, OrderCreatePoints, OrderCreateSurcharges, OrderTender, RequestError, RequestStatus, Taxes } from '@open-tender/types';
|
|
3
|
+
import { Order, Tender } from '../types';
|
|
3
4
|
export interface CheckoutState {
|
|
5
|
+
activating: RequestStatus;
|
|
6
|
+
authorizing: RequestStatus;
|
|
4
7
|
check: Order | null;
|
|
8
|
+
completedOrder: Order | null;
|
|
9
|
+
customer: CustomerCheckout | null;
|
|
10
|
+
discounts: OrderCreateDiscounts;
|
|
11
|
+
error: any | null;
|
|
12
|
+
giftCards: OrderCreateGiftCards;
|
|
13
|
+
identifying: RequestStatus;
|
|
14
|
+
isTaxExempt: boolean;
|
|
5
15
|
loading: RequestStatus;
|
|
6
|
-
|
|
16
|
+
pendingDiscounts: boolean;
|
|
17
|
+
points: OrderCreatePoints;
|
|
7
18
|
removing: RequestStatus;
|
|
8
|
-
validating: RequestStatus;
|
|
9
19
|
submitting: RequestStatus;
|
|
10
|
-
|
|
11
|
-
identifying: RequestStatus;
|
|
12
|
-
error: any | null;
|
|
13
|
-
giftCards: Array<OrderCreateGiftCard>;
|
|
14
|
-
surcharges: Surcharges;
|
|
15
|
-
discounts: Discounts;
|
|
20
|
+
surcharges: OrderCreateSurcharges;
|
|
16
21
|
taxes: Taxes;
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
customer: CustomerCheckout | null;
|
|
20
|
-
points: Array<OrderCreatePoints>;
|
|
21
|
-
pendingDiscounts: boolean;
|
|
22
|
+
tip: Money | null;
|
|
23
|
+
validating: RequestStatus;
|
|
22
24
|
}
|
|
23
25
|
export declare enum CheckoutActionType {
|
|
24
26
|
AddTender = "checkout/addTender",
|
|
@@ -143,5 +145,4 @@ export declare const selectPosAmountDue: (state: AppState) => `${number}.${numbe
|
|
|
143
145
|
export declare const selectPosCheckSubtotal: (state: AppState) => `${number}.${number}`;
|
|
144
146
|
export declare const selectPosCheckTotal: (state: AppState) => `${number}.${number}`;
|
|
145
147
|
export declare const selectPosCheckTenders: (state: AppState) => import("../types").OrderTenders;
|
|
146
|
-
export declare const selectPosCheckGiftCardCodes: (state: AppState) => (string | null)[];
|
|
147
148
|
export declare const checkoutReducer: import("redux").Reducer<CheckoutState>;
|
|
@@ -1,36 +1,43 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
var _a;
|
|
3
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
-
exports.checkoutReducer = exports.
|
|
4
|
+
exports.checkoutReducer = exports.selectPosCheckTenders = exports.selectPosCheckTotal = exports.selectPosCheckSubtotal = exports.selectPosAmountDue = exports.selectPosPendingDiscounts = exports.selectPosCustomerNameShort = exports.selectPosCustomerName = exports.selectPosCustomer = exports.selectPosCheck = exports.selectPosCheckout = exports.setPoints = exports.setPendingDiscounts = exports.removeCustomer = exports.addCustomer = exports.setTaxExempt = exports.removeTip = exports.addTip = exports.removeTax = exports.addTax = exports.removeDiscount = exports.addDiscount = exports.removeSurcharge = exports.addSurcharge = exports.removeGiftCard = exports.addGiftCard = exports.handleCheckoutError = exports.resetPosCheck = exports.resetPosCheckout = exports.activateGiftCards = exports.voidPosOrder = exports.submitPosOrder = exports.validatePosOrder = exports.completeChipDNA = exports.identifyCustomer = exports.updateCart = exports.updateTender = exports.removeTender = exports.addTender = exports.CheckoutActionType = void 0;
|
|
5
5
|
var tslib_1 = require("tslib");
|
|
6
6
|
var toolkit_1 = require("@reduxjs/toolkit");
|
|
7
7
|
var uuid_1 = require("uuid");
|
|
8
|
+
// import {
|
|
9
|
+
// IdentifyCustomer,
|
|
10
|
+
// Order,
|
|
11
|
+
// OrderCreate,
|
|
12
|
+
// Tender
|
|
13
|
+
// } from '../types'
|
|
8
14
|
var utils_1 = require("../utils");
|
|
9
|
-
var order_1 = require("../utils/order");
|
|
10
15
|
var alerts_1 = require("./alerts");
|
|
11
16
|
var notifications_1 = require("./notifications");
|
|
12
|
-
var
|
|
17
|
+
var order_1 = require("./order");
|
|
13
18
|
var pos_1 = require("./pos");
|
|
14
19
|
var types_1 = require("./types");
|
|
20
|
+
var utils_2 = require("@open-tender/utils");
|
|
15
21
|
var initialState = {
|
|
22
|
+
activating: 'idle',
|
|
23
|
+
authorizing: 'idle',
|
|
16
24
|
check: null,
|
|
25
|
+
completedOrder: null,
|
|
26
|
+
customer: null,
|
|
27
|
+
discounts: [],
|
|
28
|
+
error: null,
|
|
29
|
+
giftCards: [],
|
|
30
|
+
identifying: 'idle',
|
|
31
|
+
isTaxExempt: false,
|
|
17
32
|
loading: 'idle',
|
|
18
|
-
|
|
33
|
+
pendingDiscounts: false,
|
|
34
|
+
points: [],
|
|
19
35
|
removing: 'idle',
|
|
20
|
-
validating: 'idle',
|
|
21
36
|
submitting: 'idle',
|
|
22
|
-
activating: 'idle',
|
|
23
|
-
identifying: 'idle',
|
|
24
|
-
error: null,
|
|
25
|
-
giftCards: [],
|
|
26
37
|
surcharges: [],
|
|
27
|
-
discounts: [],
|
|
28
|
-
points: [],
|
|
29
38
|
taxes: [],
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
customer: null,
|
|
33
|
-
pendingDiscounts: false
|
|
39
|
+
tip: null,
|
|
40
|
+
validating: 'idle'
|
|
34
41
|
};
|
|
35
42
|
var getAmountDue = function (check) {
|
|
36
43
|
return check && check.totals ? check.totals.amount_due : null;
|
|
@@ -39,26 +46,30 @@ var prepareOrder = function (order, checkout) {
|
|
|
39
46
|
var order_uuid = order.orderId, requested_at = order.requestedAt, service_type = order.serviceType, order_type = order.orderType, revenue_center_id = order.revenueCenterId;
|
|
40
47
|
if (!order_uuid)
|
|
41
48
|
return null;
|
|
42
|
-
var simpleCart = (0,
|
|
49
|
+
var simpleCart = (0, utils_2.makeSimpleCart)(order.cart);
|
|
43
50
|
var cart = simpleCart.filter(function (item) { return item; });
|
|
44
51
|
if (!revenue_center_id || !order_type || !service_type) {
|
|
45
52
|
return null;
|
|
46
53
|
}
|
|
47
|
-
var customer = checkout.customer,
|
|
48
|
-
|
|
54
|
+
var customer = checkout.customer,
|
|
55
|
+
// giftCards: gift_cards,
|
|
56
|
+
surcharges = checkout.surcharges, discounts = checkout.discounts, taxes = checkout.taxes, tip = checkout.tip,
|
|
57
|
+
// isTaxExempt,
|
|
58
|
+
points = checkout.points;
|
|
59
|
+
// const is_tax_exempt = isTaxExempt ? true : false
|
|
49
60
|
return {
|
|
50
61
|
order_uuid: order_uuid,
|
|
51
62
|
revenue_center_id: revenue_center_id,
|
|
52
|
-
|
|
63
|
+
// order_type,
|
|
53
64
|
service_type: service_type,
|
|
54
65
|
requested_at: requested_at,
|
|
55
66
|
customer: customer,
|
|
56
67
|
cart: cart,
|
|
57
|
-
|
|
68
|
+
// gift_cards,
|
|
58
69
|
surcharges: surcharges,
|
|
59
70
|
discounts: discounts,
|
|
60
71
|
taxes: taxes,
|
|
61
|
-
|
|
72
|
+
// is_tax_exempt,
|
|
62
73
|
tip: tip,
|
|
63
74
|
points: points
|
|
64
75
|
};
|
|
@@ -79,7 +90,7 @@ var CheckoutActionType;
|
|
|
79
90
|
exports.addTender = (0, toolkit_1.createAsyncThunk)(CheckoutActionType.AddTender, function (tender, _a) {
|
|
80
91
|
var dispatch = _a.dispatch, getState = _a.getState, rejectWithValue = _a.rejectWithValue;
|
|
81
92
|
return tslib_1.__awaiter(void 0, void 0, void 0, function () {
|
|
82
|
-
var _b, config, order, checkout, orderId, api, hasLoyalty, amountDue, response, amount,
|
|
93
|
+
var _b, config, order, checkout, orderId, api, hasLoyalty, amountDue, response, amount, card_token, callback, data, err_1;
|
|
83
94
|
return tslib_1.__generator(this, function (_c) {
|
|
84
95
|
switch (_c.label) {
|
|
85
96
|
case 0:
|
|
@@ -91,11 +102,13 @@ exports.addTender = (0, toolkit_1.createAsyncThunk)(CheckoutActionType.AddTender
|
|
|
91
102
|
api = config.api;
|
|
92
103
|
hasLoyalty = config.store ? config.store.has_loyalty : false;
|
|
93
104
|
amountDue = getAmountDue(checkout.check);
|
|
94
|
-
return [4 /*yield*/, api.postTender(orderId, tender)
|
|
105
|
+
return [4 /*yield*/, api.postTender(orderId, tender)
|
|
106
|
+
// TODO: need to fix this
|
|
107
|
+
];
|
|
95
108
|
case 1:
|
|
96
109
|
response = _c.sent();
|
|
97
|
-
amount = response.amount
|
|
98
|
-
card_token =
|
|
110
|
+
amount = response.amount;
|
|
111
|
+
card_token = null;
|
|
99
112
|
callback = amount === amountDue
|
|
100
113
|
? function () { return dispatch((0, exports.submitPosOrder)()); }
|
|
101
114
|
: function () { return dispatch((0, exports.validatePosOrder)()); };
|
|
@@ -163,7 +176,10 @@ exports.updateTender = (0, toolkit_1.createAsyncThunk)(CheckoutActionType.Update
|
|
|
163
176
|
amountDue = parseFloat(totals.amount_due || '0.00');
|
|
164
177
|
amount = amountTender + amountDue;
|
|
165
178
|
if (!(amount > 0)) return [3 /*break*/, 2];
|
|
166
|
-
updatedTender = {
|
|
179
|
+
updatedTender = {
|
|
180
|
+
tender_type: tender.tender_type,
|
|
181
|
+
amount: amount.toFixed(2)
|
|
182
|
+
};
|
|
167
183
|
return [4 /*yield*/, api.patchTender(orderId, index, updatedTender)];
|
|
168
184
|
case 1:
|
|
169
185
|
response = _b.sent();
|
|
@@ -203,7 +219,7 @@ exports.updateCart = (0, toolkit_1.createAsyncThunk)(CheckoutActionType.UpdateCa
|
|
|
203
219
|
}
|
|
204
220
|
errIndices_1 = cartErrors.map(function (i) { return i.index; });
|
|
205
221
|
newCart = cart.filter(function (_, idx) { return !errIndices_1.includes(idx); });
|
|
206
|
-
dispatch((0,
|
|
222
|
+
dispatch((0, order_1.setCart)(newCart));
|
|
207
223
|
// not necessary here since validatePosOrder() runs when
|
|
208
224
|
// error is set to null when updateCart is fulfilled
|
|
209
225
|
// dispatch(validatePosOrder())
|
|
@@ -334,7 +350,7 @@ exports.validatePosOrder = (0, toolkit_1.createAsyncThunk)(CheckoutActionType.Va
|
|
|
334
350
|
errors = (0, utils_1.handleRespError)(err_6).errors;
|
|
335
351
|
fields = errors ? Object.keys(errors) : [];
|
|
336
352
|
if (fields.includes('order_uuid')) {
|
|
337
|
-
dispatch((0,
|
|
353
|
+
dispatch((0, order_1.setOrderId)((0, uuid_1.v4)()));
|
|
338
354
|
}
|
|
339
355
|
return [2 /*return*/, rejectWithValue(err_6)];
|
|
340
356
|
case 3: return [2 /*return*/];
|
|
@@ -364,7 +380,7 @@ exports.submitPosOrder = (0, toolkit_1.createAsyncThunk)(CheckoutActionType.Subm
|
|
|
364
380
|
errors = (0, utils_1.handleRespError)(err_7).errors;
|
|
365
381
|
fields = errors ? Object.keys(errors) : [];
|
|
366
382
|
if (fields.includes('order_uuid')) {
|
|
367
|
-
dispatch((0,
|
|
383
|
+
dispatch((0, order_1.setOrderId)((0, uuid_1.v4)()));
|
|
368
384
|
}
|
|
369
385
|
return [2 /*return*/, rejectWithValue(err_7)];
|
|
370
386
|
case 3: return [2 /*return*/];
|
|
@@ -607,10 +623,15 @@ var checkoutSlice = (0, toolkit_1.createSlice)({
|
|
|
607
623
|
state.error = action.payload;
|
|
608
624
|
})
|
|
609
625
|
.addCase(exports.submitPosOrder.fulfilled, function (state, action) {
|
|
610
|
-
state.check =
|
|
626
|
+
state.check = null;
|
|
627
|
+
state.completedOrder = action.payload || null;
|
|
611
628
|
state.loading = 'idle';
|
|
612
629
|
state.submitting = 'idle';
|
|
613
630
|
state.error = null;
|
|
631
|
+
// return {
|
|
632
|
+
// ...initialState,
|
|
633
|
+
// completedOrder: action.payload
|
|
634
|
+
// }
|
|
614
635
|
})
|
|
615
636
|
.addCase(exports.submitPosOrder.pending, function (state) {
|
|
616
637
|
state.loading = 'pending';
|
|
@@ -693,14 +714,15 @@ var selectPosCheckTenders = function (state) {
|
|
|
693
714
|
return check ? check.tenders : [];
|
|
694
715
|
};
|
|
695
716
|
exports.selectPosCheckTenders = selectPosCheckTenders;
|
|
696
|
-
|
|
697
|
-
|
|
698
|
-
|
|
699
|
-
|
|
700
|
-
|
|
701
|
-
|
|
702
|
-
|
|
703
|
-
|
|
704
|
-
|
|
705
|
-
|
|
717
|
+
// export const selectPosCheckGiftCardCodes = (state: AppState) => {
|
|
718
|
+
// const check = state.checkout.check
|
|
719
|
+
// return check
|
|
720
|
+
// ? check.tenders
|
|
721
|
+
// .filter(
|
|
722
|
+
// i => i.tender_type === 'GIFT_CARD' && i.tender_status === 'AUTHORIZED'
|
|
723
|
+
// )
|
|
724
|
+
// .map(i => (i.gift_card ? i.gift_card.code : null))
|
|
725
|
+
// .filter(i => i)
|
|
726
|
+
// : []
|
|
727
|
+
// }
|
|
706
728
|
exports.checkoutReducer = checkoutSlice.reducer;
|
|
@@ -41,7 +41,7 @@ export declare const selectKiosk: (state: AppState) => KioskState;
|
|
|
41
41
|
export declare const selectKioskVersion: (state: AppState) => string | null | undefined;
|
|
42
42
|
export declare const selectKioskStore: (state: AppState) => Store | null;
|
|
43
43
|
export declare const selectKioskBrand: (state: AppState) => KioskBrand | null;
|
|
44
|
-
export declare const selectKioskConfig: (state: AppState) => AppConfig
|
|
44
|
+
export declare const selectKioskConfig: (state: AppState) => AppConfig;
|
|
45
45
|
export declare const selectKioskConfigScreen: (screen: string) => ((state: {
|
|
46
46
|
alerts: import("../types").Alerts;
|
|
47
47
|
arrivals: import("./arrivals").ArrivalsState;
|
package/dist/cjs/slices/kiosk.js
CHANGED
|
@@ -140,7 +140,7 @@ var selectKioskStore = function (state) { return state.kiosk.store; };
|
|
|
140
140
|
exports.selectKioskStore = selectKioskStore;
|
|
141
141
|
var selectKioskBrand = function (state) { return state.kiosk.brand; };
|
|
142
142
|
exports.selectKioskBrand = selectKioskBrand;
|
|
143
|
-
var selectKioskConfig = function (state) { return state.kiosk.config; };
|
|
143
|
+
var selectKioskConfig = function (state) { return state.kiosk.config || {}; };
|
|
144
144
|
exports.selectKioskConfig = selectKioskConfig;
|
|
145
145
|
var selectKioskConfigScreen = function (screen) {
|
|
146
146
|
return (0, toolkit_1.createSelector)(function (state) {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Menu,
|
|
1
|
+
import { Menu, MenuCategories, MenuVars, RequestError, RequestStatus, SoldOut } from '@open-tender/types';
|
|
2
2
|
import { AppState } from '../app';
|
|
3
3
|
export interface MenuState {
|
|
4
4
|
categories: MenuCategories;
|
|
@@ -55,7 +55,7 @@ export declare const selectMenuPagesFiltered: ((state: {
|
|
|
55
55
|
resetResultsCount: () => void;
|
|
56
56
|
} & {
|
|
57
57
|
resultFunc: (resultFuncArgs_0: {
|
|
58
|
-
orderType: import("
|
|
58
|
+
orderType: import("@open-tender/types").OrderType | null;
|
|
59
59
|
pages: MenuPages;
|
|
60
60
|
}) => {
|
|
61
61
|
order_type: import("../types").OrderType;
|
|
@@ -65,7 +65,7 @@ export declare const selectMenuPagesFiltered: ((state: {
|
|
|
65
65
|
sections: import("../types").MenuSections;
|
|
66
66
|
}[];
|
|
67
67
|
memoizedResultFunc: ((resultFuncArgs_0: {
|
|
68
|
-
orderType: import("
|
|
68
|
+
orderType: import("@open-tender/types").OrderType | null;
|
|
69
69
|
pages: MenuPages;
|
|
70
70
|
}) => {
|
|
71
71
|
order_type: import("../types").OrderType;
|
|
@@ -86,7 +86,7 @@ export declare const selectMenuPagesFiltered: ((state: {
|
|
|
86
86
|
sections: import("../types").MenuSections;
|
|
87
87
|
}[];
|
|
88
88
|
dependencies: [(state: AppState) => {
|
|
89
|
-
orderType: import("
|
|
89
|
+
orderType: import("@open-tender/types").OrderType | null;
|
|
90
90
|
pages: MenuPages;
|
|
91
91
|
}];
|
|
92
92
|
recomputations: () => number;
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import { MenuCategory } from '@open-tender/types';
|
|
2
|
-
import { Cart, CartCounts, CartItem, MenuVendor, Messages, OrderType, RequestedAt, RequestError, RequestStatus, ServiceType } from '../types';
|
|
1
|
+
import { Cart, CartCounts, CartItem, MenuCategory, MenuRevenueCenter, Messages, OrderType, RequestError, RequestStatus, RequestedAt, ServiceType } from '@open-tender/types';
|
|
3
2
|
import { AppState } from '../app';
|
|
4
3
|
export interface OrderState {
|
|
5
4
|
orderId: string | null;
|
|
@@ -9,7 +8,7 @@ export interface OrderState {
|
|
|
9
8
|
table: string | null;
|
|
10
9
|
prepType: 'EAT_HERE' | 'TAKE_OUT' | null;
|
|
11
10
|
requestedAt: RequestedAt;
|
|
12
|
-
currentVendor:
|
|
11
|
+
currentVendor: MenuRevenueCenter | null;
|
|
13
12
|
currentCategory: MenuCategory | null;
|
|
14
13
|
currentItem: CartItem | null;
|
|
15
14
|
cart: Cart;
|
|
@@ -29,7 +28,7 @@ export declare const selectOrder: (state: AppState) => OrderState;
|
|
|
29
28
|
export declare const selectOrderType: (state: AppState) => OrderType | null;
|
|
30
29
|
export declare const selectOrderTypeName: (state: AppState) => string;
|
|
31
30
|
export declare const selectServiceType: (state: AppState) => ServiceType | null;
|
|
32
|
-
export declare const selectServiceTypeName: (state: AppState) => string;
|
|
31
|
+
export declare const selectServiceTypeName: (state: AppState) => string | undefined;
|
|
33
32
|
export declare const selectRequestedAt: (state: AppState) => `${number}${number}${number}${number}-${number}${number}-${number}${number}T${number}${number}:${number}${number}:${number}${number}Z` | "ASAP";
|
|
34
33
|
export declare const selectRevenueCenterId: (state: AppState) => number | null;
|
|
35
34
|
export declare const selectMenuSlug: (state: AppState) => string;
|
|
@@ -38,13 +37,17 @@ export declare const selectMenuVars: (state: AppState) => {
|
|
|
38
37
|
serviceType: ServiceType | null;
|
|
39
38
|
requestedAt: RequestedAt;
|
|
40
39
|
};
|
|
41
|
-
export declare const selectCurrentVendor: (state: AppState) =>
|
|
40
|
+
export declare const selectCurrentVendor: (state: AppState) => MenuRevenueCenter | null;
|
|
42
41
|
export declare const selectCurrentCategory: (state: AppState) => MenuCategory | null;
|
|
43
42
|
export declare const selectCurrentItem: (state: AppState) => CartItem | null;
|
|
44
43
|
export declare const selectCart: (state: AppState) => Cart;
|
|
45
44
|
export declare const selectCartIds: (state: AppState) => number[];
|
|
46
45
|
export declare const selectCartQuantity: (state: AppState) => number;
|
|
47
46
|
export declare const selectCartTotal: (state: AppState) => number;
|
|
47
|
+
export declare const selectCartTotals: (state: AppState) => {
|
|
48
|
+
count: number;
|
|
49
|
+
total: number;
|
|
50
|
+
};
|
|
48
51
|
export declare const selectCartCounts: (state: AppState) => CartCounts;
|
|
49
52
|
export declare const selectCanOrder: (state: AppState) => 0 | RequestedAt | null;
|
|
50
53
|
export declare const selectCartValidate: (state: AppState) => {
|
package/dist/cjs/slices/order.js
CHANGED
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
var _a;
|
|
3
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
-
exports.
|
|
4
|
+
exports.selectCartValidate = exports.selectCanOrder = exports.selectCartCounts = exports.selectCartTotals = exports.selectCartTotal = exports.selectCartQuantity = exports.selectCartIds = exports.selectCart = exports.selectCurrentItem = exports.selectCurrentCategory = exports.selectCurrentVendor = exports.selectMenuVars = exports.selectMenuSlug = exports.selectRevenueCenterId = exports.selectRequestedAt = exports.selectServiceTypeName = exports.selectServiceType = exports.selectOrderTypeName = exports.selectOrderType = exports.selectOrder = exports.selectMessages = exports.selectAlert = exports.removeMessage = exports.addMessage = exports.decrementItemInCart = exports.incrementItemInCart = exports.removeItemFromCart = exports.addItemToCart = exports.setCurrentItem = exports.setCurrentCategory = exports.setCurrentVendor = exports.setCart = exports.setMenuVars = exports.setOrderServiceType = exports.setPrepType = exports.setTable = exports.setRevenueCenterId = exports.setRequestedAt = exports.setServiceType = exports.setOrderType = exports.setOrderId = exports.setAlert = exports.resetAlert = exports.resetMessages = exports.resetCart = exports.resetLocation = exports.resetRevenueCenter = exports.resetOrderType = exports.resetOrder = exports.OrderActionType = void 0;
|
|
5
|
+
exports.orderReducer = void 0;
|
|
5
6
|
var tslib_1 = require("tslib");
|
|
6
7
|
var toolkit_1 = require("@reduxjs/toolkit");
|
|
7
|
-
var utils_1 = require("
|
|
8
|
+
var utils_1 = require("@open-tender/utils");
|
|
8
9
|
var types_1 = require("./types");
|
|
9
10
|
var initialState = {
|
|
10
11
|
orderId: null,
|
|
@@ -209,10 +210,16 @@ var selectCartQuantity = function (state) {
|
|
|
209
210
|
exports.selectCartQuantity = selectCartQuantity;
|
|
210
211
|
var selectCartTotal = function (state) {
|
|
211
212
|
return state.order.cart
|
|
212
|
-
? state.order.cart.reduce(function (t, i) { return (t += i.totalPrice); }, 0.0)
|
|
213
|
+
? state.order.cart.reduce(function (t, i) { return (t += i.totalPrice || 0); }, 0.0)
|
|
213
214
|
: 0.0;
|
|
214
215
|
};
|
|
215
216
|
exports.selectCartTotal = selectCartTotal;
|
|
217
|
+
var selectCartTotals = function (state) {
|
|
218
|
+
var count = (0, exports.selectCartQuantity)(state);
|
|
219
|
+
var total = (0, exports.selectCartTotal)(state);
|
|
220
|
+
return { count: count, total: total };
|
|
221
|
+
};
|
|
222
|
+
exports.selectCartTotals = selectCartTotals;
|
|
216
223
|
var selectCartCounts = function (state) {
|
|
217
224
|
return state.order.cartCounts || {};
|
|
218
225
|
};
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import { ISOString } from '
|
|
2
|
-
import { DiscountType, Money, OrderType, ServiceType, TenderType } from '../global';
|
|
1
|
+
import { DiscountType, ISOString, Money, OrderType, ServiceType, TenderType } from '@open-tender/types';
|
|
3
2
|
import { Address, Customer } from './customer';
|
|
4
3
|
export interface CustomerIdentifier {
|
|
5
4
|
card_token?: string;
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { CustomerCheckout, Menu, OrderCreate, OrderTender, OrderType, ServiceType } from '@open-tender/types';
|
|
2
|
+
import { Arrivals, CashEvent, CashSummary, CustomerIdentifier, DeviceRead, Discount, Discounts, Employee, Employees, PosSettingType, ErrorAlert, ErrorAlerts, FetchOrdersAPIArgs, GiftCardBalance, GiftCardCredit, InternalSettings, ItemTypes, KioskConfig, LevelUp, MenuColors, MenuPages, OfflineAuths, OfflineAuthsResult, Order, Orders, OrderUpdate, Punch, Refund, RequestedAt, RevenueCenter, SelectOptions, Settings, Store, Surcharges, Taxes, Tender, TicketStatusUpdate, TicketsUpdate, TicketUpdate } from '../types';
|
|
2
3
|
export interface InitAPI {
|
|
3
4
|
apiUrl: string;
|
|
4
5
|
posTerminalId?: number;
|
|
@@ -1,24 +1,26 @@
|
|
|
1
|
-
import { CustomerCheckout, Discounts, IdentifyCustomer, Money, Order, OrderCreateGiftCard, OrderCreatePoints, OrderTender, RequestError, RequestStatus, Surcharges, Taxes, Tender } from '../types';
|
|
2
1
|
import { AppState } from '../app';
|
|
2
|
+
import { CustomerCheckout, IdentifyCustomer, Money, OrderCreateDiscounts, OrderCreateGiftCards, OrderCreatePoints, OrderCreateSurcharges, OrderTender, RequestError, RequestStatus, Taxes } from '@open-tender/types';
|
|
3
|
+
import { Order, Tender } from '../types';
|
|
3
4
|
export interface CheckoutState {
|
|
5
|
+
activating: RequestStatus;
|
|
6
|
+
authorizing: RequestStatus;
|
|
4
7
|
check: Order | null;
|
|
8
|
+
completedOrder: Order | null;
|
|
9
|
+
customer: CustomerCheckout | null;
|
|
10
|
+
discounts: OrderCreateDiscounts;
|
|
11
|
+
error: any | null;
|
|
12
|
+
giftCards: OrderCreateGiftCards;
|
|
13
|
+
identifying: RequestStatus;
|
|
14
|
+
isTaxExempt: boolean;
|
|
5
15
|
loading: RequestStatus;
|
|
6
|
-
|
|
16
|
+
pendingDiscounts: boolean;
|
|
17
|
+
points: OrderCreatePoints;
|
|
7
18
|
removing: RequestStatus;
|
|
8
|
-
validating: RequestStatus;
|
|
9
19
|
submitting: RequestStatus;
|
|
10
|
-
|
|
11
|
-
identifying: RequestStatus;
|
|
12
|
-
error: any | null;
|
|
13
|
-
giftCards: Array<OrderCreateGiftCard>;
|
|
14
|
-
surcharges: Surcharges;
|
|
15
|
-
discounts: Discounts;
|
|
20
|
+
surcharges: OrderCreateSurcharges;
|
|
16
21
|
taxes: Taxes;
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
customer: CustomerCheckout | null;
|
|
20
|
-
points: Array<OrderCreatePoints>;
|
|
21
|
-
pendingDiscounts: boolean;
|
|
22
|
+
tip: Money | null;
|
|
23
|
+
validating: RequestStatus;
|
|
22
24
|
}
|
|
23
25
|
export declare enum CheckoutActionType {
|
|
24
26
|
AddTender = "checkout/addTender",
|
|
@@ -143,5 +145,4 @@ export declare const selectPosAmountDue: (state: AppState) => `${number}.${numbe
|
|
|
143
145
|
export declare const selectPosCheckSubtotal: (state: AppState) => `${number}.${number}`;
|
|
144
146
|
export declare const selectPosCheckTotal: (state: AppState) => `${number}.${number}`;
|
|
145
147
|
export declare const selectPosCheckTenders: (state: AppState) => import("../types").OrderTenders;
|
|
146
|
-
export declare const selectPosCheckGiftCardCodes: (state: AppState) => (string | null)[];
|
|
147
148
|
export declare const checkoutReducer: import("redux").Reducer<CheckoutState>;
|
|
@@ -2,32 +2,39 @@ var _a;
|
|
|
2
2
|
import { __assign, __awaiter, __generator } from "tslib";
|
|
3
3
|
import { createAsyncThunk, createSlice } from '@reduxjs/toolkit';
|
|
4
4
|
import { v4 as uuidv4 } from 'uuid';
|
|
5
|
+
// import {
|
|
6
|
+
// IdentifyCustomer,
|
|
7
|
+
// Order,
|
|
8
|
+
// OrderCreate,
|
|
9
|
+
// Tender
|
|
10
|
+
// } from '../types'
|
|
5
11
|
import { handleRespError } from '../utils';
|
|
6
|
-
import { makeSimpleCart } from '../utils/order';
|
|
7
12
|
import { addAlert } from './alerts';
|
|
8
13
|
import { showNotification } from './notifications';
|
|
9
14
|
import { setCart, setOrderId } from './order';
|
|
10
15
|
import { setLastOrderId } from './pos';
|
|
11
16
|
import { ReducerType } from './types';
|
|
17
|
+
import { makeSimpleCart } from '@open-tender/utils';
|
|
12
18
|
var initialState = {
|
|
19
|
+
activating: 'idle',
|
|
20
|
+
authorizing: 'idle',
|
|
13
21
|
check: null,
|
|
22
|
+
completedOrder: null,
|
|
23
|
+
customer: null,
|
|
24
|
+
discounts: [],
|
|
25
|
+
error: null,
|
|
26
|
+
giftCards: [],
|
|
27
|
+
identifying: 'idle',
|
|
28
|
+
isTaxExempt: false,
|
|
14
29
|
loading: 'idle',
|
|
15
|
-
|
|
30
|
+
pendingDiscounts: false,
|
|
31
|
+
points: [],
|
|
16
32
|
removing: 'idle',
|
|
17
|
-
validating: 'idle',
|
|
18
33
|
submitting: 'idle',
|
|
19
|
-
activating: 'idle',
|
|
20
|
-
identifying: 'idle',
|
|
21
|
-
error: null,
|
|
22
|
-
giftCards: [],
|
|
23
34
|
surcharges: [],
|
|
24
|
-
discounts: [],
|
|
25
|
-
points: [],
|
|
26
35
|
taxes: [],
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
customer: null,
|
|
30
|
-
pendingDiscounts: false
|
|
36
|
+
tip: null,
|
|
37
|
+
validating: 'idle'
|
|
31
38
|
};
|
|
32
39
|
var getAmountDue = function (check) {
|
|
33
40
|
return check && check.totals ? check.totals.amount_due : null;
|
|
@@ -41,21 +48,25 @@ var prepareOrder = function (order, checkout) {
|
|
|
41
48
|
if (!revenue_center_id || !order_type || !service_type) {
|
|
42
49
|
return null;
|
|
43
50
|
}
|
|
44
|
-
var customer = checkout.customer,
|
|
45
|
-
|
|
51
|
+
var customer = checkout.customer,
|
|
52
|
+
// giftCards: gift_cards,
|
|
53
|
+
surcharges = checkout.surcharges, discounts = checkout.discounts, taxes = checkout.taxes, tip = checkout.tip,
|
|
54
|
+
// isTaxExempt,
|
|
55
|
+
points = checkout.points;
|
|
56
|
+
// const is_tax_exempt = isTaxExempt ? true : false
|
|
46
57
|
return {
|
|
47
58
|
order_uuid: order_uuid,
|
|
48
59
|
revenue_center_id: revenue_center_id,
|
|
49
|
-
|
|
60
|
+
// order_type,
|
|
50
61
|
service_type: service_type,
|
|
51
62
|
requested_at: requested_at,
|
|
52
63
|
customer: customer,
|
|
53
64
|
cart: cart,
|
|
54
|
-
|
|
65
|
+
// gift_cards,
|
|
55
66
|
surcharges: surcharges,
|
|
56
67
|
discounts: discounts,
|
|
57
68
|
taxes: taxes,
|
|
58
|
-
|
|
69
|
+
// is_tax_exempt,
|
|
59
70
|
tip: tip,
|
|
60
71
|
points: points
|
|
61
72
|
};
|
|
@@ -76,7 +87,7 @@ export var CheckoutActionType;
|
|
|
76
87
|
export var addTender = createAsyncThunk(CheckoutActionType.AddTender, function (tender, _a) {
|
|
77
88
|
var dispatch = _a.dispatch, getState = _a.getState, rejectWithValue = _a.rejectWithValue;
|
|
78
89
|
return __awaiter(void 0, void 0, void 0, function () {
|
|
79
|
-
var _b, config, order, checkout, orderId, api, hasLoyalty, amountDue, response, amount,
|
|
90
|
+
var _b, config, order, checkout, orderId, api, hasLoyalty, amountDue, response, amount, card_token, callback, data, err_1;
|
|
80
91
|
return __generator(this, function (_c) {
|
|
81
92
|
switch (_c.label) {
|
|
82
93
|
case 0:
|
|
@@ -88,11 +99,13 @@ export var addTender = createAsyncThunk(CheckoutActionType.AddTender, function (
|
|
|
88
99
|
api = config.api;
|
|
89
100
|
hasLoyalty = config.store ? config.store.has_loyalty : false;
|
|
90
101
|
amountDue = getAmountDue(checkout.check);
|
|
91
|
-
return [4 /*yield*/, api.postTender(orderId, tender)
|
|
102
|
+
return [4 /*yield*/, api.postTender(orderId, tender)
|
|
103
|
+
// TODO: need to fix this
|
|
104
|
+
];
|
|
92
105
|
case 1:
|
|
93
106
|
response = _c.sent();
|
|
94
|
-
amount = response.amount
|
|
95
|
-
card_token =
|
|
107
|
+
amount = response.amount;
|
|
108
|
+
card_token = null;
|
|
96
109
|
callback = amount === amountDue
|
|
97
110
|
? function () { return dispatch(submitPosOrder()); }
|
|
98
111
|
: function () { return dispatch(validatePosOrder()); };
|
|
@@ -160,7 +173,10 @@ export var updateTender = createAsyncThunk(CheckoutActionType.UpdateTender, func
|
|
|
160
173
|
amountDue = parseFloat(totals.amount_due || '0.00');
|
|
161
174
|
amount = amountTender + amountDue;
|
|
162
175
|
if (!(amount > 0)) return [3 /*break*/, 2];
|
|
163
|
-
updatedTender = {
|
|
176
|
+
updatedTender = {
|
|
177
|
+
tender_type: tender.tender_type,
|
|
178
|
+
amount: amount.toFixed(2)
|
|
179
|
+
};
|
|
164
180
|
return [4 /*yield*/, api.patchTender(orderId, index, updatedTender)];
|
|
165
181
|
case 1:
|
|
166
182
|
response = _b.sent();
|
|
@@ -604,10 +620,15 @@ var checkoutSlice = createSlice({
|
|
|
604
620
|
state.error = action.payload;
|
|
605
621
|
})
|
|
606
622
|
.addCase(submitPosOrder.fulfilled, function (state, action) {
|
|
607
|
-
state.check =
|
|
623
|
+
state.check = null;
|
|
624
|
+
state.completedOrder = action.payload || null;
|
|
608
625
|
state.loading = 'idle';
|
|
609
626
|
state.submitting = 'idle';
|
|
610
627
|
state.error = null;
|
|
628
|
+
// return {
|
|
629
|
+
// ...initialState,
|
|
630
|
+
// completedOrder: action.payload
|
|
631
|
+
// }
|
|
611
632
|
})
|
|
612
633
|
.addCase(submitPosOrder.pending, function (state) {
|
|
613
634
|
state.loading = 'pending';
|
|
@@ -680,13 +701,15 @@ export var selectPosCheckTenders = function (state) {
|
|
|
680
701
|
var check = state.checkout.check;
|
|
681
702
|
return check ? check.tenders : [];
|
|
682
703
|
};
|
|
683
|
-
export
|
|
684
|
-
|
|
685
|
-
|
|
686
|
-
|
|
687
|
-
|
|
688
|
-
|
|
689
|
-
|
|
690
|
-
|
|
691
|
-
|
|
704
|
+
// export const selectPosCheckGiftCardCodes = (state: AppState) => {
|
|
705
|
+
// const check = state.checkout.check
|
|
706
|
+
// return check
|
|
707
|
+
// ? check.tenders
|
|
708
|
+
// .filter(
|
|
709
|
+
// i => i.tender_type === 'GIFT_CARD' && i.tender_status === 'AUTHORIZED'
|
|
710
|
+
// )
|
|
711
|
+
// .map(i => (i.gift_card ? i.gift_card.code : null))
|
|
712
|
+
// .filter(i => i)
|
|
713
|
+
// : []
|
|
714
|
+
// }
|
|
692
715
|
export var checkoutReducer = checkoutSlice.reducer;
|
|
@@ -41,7 +41,7 @@ export declare const selectKiosk: (state: AppState) => KioskState;
|
|
|
41
41
|
export declare const selectKioskVersion: (state: AppState) => string | null | undefined;
|
|
42
42
|
export declare const selectKioskStore: (state: AppState) => Store | null;
|
|
43
43
|
export declare const selectKioskBrand: (state: AppState) => KioskBrand | null;
|
|
44
|
-
export declare const selectKioskConfig: (state: AppState) => AppConfig
|
|
44
|
+
export declare const selectKioskConfig: (state: AppState) => AppConfig;
|
|
45
45
|
export declare const selectKioskConfigScreen: (screen: string) => ((state: {
|
|
46
46
|
alerts: import("../types").Alerts;
|
|
47
47
|
arrivals: import("./arrivals").ArrivalsState;
|
package/dist/esm/slices/kiosk.js
CHANGED
|
@@ -133,7 +133,7 @@ export var selectKiosk = function (state) { return state.kiosk; };
|
|
|
133
133
|
export var selectKioskVersion = function (state) { return state.kiosk.version; };
|
|
134
134
|
export var selectKioskStore = function (state) { return state.kiosk.store; };
|
|
135
135
|
export var selectKioskBrand = function (state) { return state.kiosk.brand; };
|
|
136
|
-
export var selectKioskConfig = function (state) { return state.kiosk.config; };
|
|
136
|
+
export var selectKioskConfig = function (state) { return state.kiosk.config || {}; };
|
|
137
137
|
export var selectKioskConfigScreen = function (screen) {
|
|
138
138
|
return createSelector(function (state) {
|
|
139
139
|
var config = state.kiosk.config;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Menu,
|
|
1
|
+
import { Menu, MenuCategories, MenuVars, RequestError, RequestStatus, SoldOut } from '@open-tender/types';
|
|
2
2
|
import { AppState } from '../app';
|
|
3
3
|
export interface MenuState {
|
|
4
4
|
categories: MenuCategories;
|
|
@@ -55,7 +55,7 @@ export declare const selectMenuPagesFiltered: ((state: {
|
|
|
55
55
|
resetResultsCount: () => void;
|
|
56
56
|
} & {
|
|
57
57
|
resultFunc: (resultFuncArgs_0: {
|
|
58
|
-
orderType: import("
|
|
58
|
+
orderType: import("@open-tender/types").OrderType | null;
|
|
59
59
|
pages: MenuPages;
|
|
60
60
|
}) => {
|
|
61
61
|
order_type: import("../types").OrderType;
|
|
@@ -65,7 +65,7 @@ export declare const selectMenuPagesFiltered: ((state: {
|
|
|
65
65
|
sections: import("../types").MenuSections;
|
|
66
66
|
}[];
|
|
67
67
|
memoizedResultFunc: ((resultFuncArgs_0: {
|
|
68
|
-
orderType: import("
|
|
68
|
+
orderType: import("@open-tender/types").OrderType | null;
|
|
69
69
|
pages: MenuPages;
|
|
70
70
|
}) => {
|
|
71
71
|
order_type: import("../types").OrderType;
|
|
@@ -86,7 +86,7 @@ export declare const selectMenuPagesFiltered: ((state: {
|
|
|
86
86
|
sections: import("../types").MenuSections;
|
|
87
87
|
}[];
|
|
88
88
|
dependencies: [(state: AppState) => {
|
|
89
|
-
orderType: import("
|
|
89
|
+
orderType: import("@open-tender/types").OrderType | null;
|
|
90
90
|
pages: MenuPages;
|
|
91
91
|
}];
|
|
92
92
|
recomputations: () => number;
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import { MenuCategory } from '@open-tender/types';
|
|
2
|
-
import { Cart, CartCounts, CartItem, MenuVendor, Messages, OrderType, RequestedAt, RequestError, RequestStatus, ServiceType } from '../types';
|
|
1
|
+
import { Cart, CartCounts, CartItem, MenuCategory, MenuRevenueCenter, Messages, OrderType, RequestError, RequestStatus, RequestedAt, ServiceType } from '@open-tender/types';
|
|
3
2
|
import { AppState } from '../app';
|
|
4
3
|
export interface OrderState {
|
|
5
4
|
orderId: string | null;
|
|
@@ -9,7 +8,7 @@ export interface OrderState {
|
|
|
9
8
|
table: string | null;
|
|
10
9
|
prepType: 'EAT_HERE' | 'TAKE_OUT' | null;
|
|
11
10
|
requestedAt: RequestedAt;
|
|
12
|
-
currentVendor:
|
|
11
|
+
currentVendor: MenuRevenueCenter | null;
|
|
13
12
|
currentCategory: MenuCategory | null;
|
|
14
13
|
currentItem: CartItem | null;
|
|
15
14
|
cart: Cart;
|
|
@@ -29,7 +28,7 @@ export declare const selectOrder: (state: AppState) => OrderState;
|
|
|
29
28
|
export declare const selectOrderType: (state: AppState) => OrderType | null;
|
|
30
29
|
export declare const selectOrderTypeName: (state: AppState) => string;
|
|
31
30
|
export declare const selectServiceType: (state: AppState) => ServiceType | null;
|
|
32
|
-
export declare const selectServiceTypeName: (state: AppState) => string;
|
|
31
|
+
export declare const selectServiceTypeName: (state: AppState) => string | undefined;
|
|
33
32
|
export declare const selectRequestedAt: (state: AppState) => `${number}${number}${number}${number}-${number}${number}-${number}${number}T${number}${number}:${number}${number}:${number}${number}Z` | "ASAP";
|
|
34
33
|
export declare const selectRevenueCenterId: (state: AppState) => number | null;
|
|
35
34
|
export declare const selectMenuSlug: (state: AppState) => string;
|
|
@@ -38,13 +37,17 @@ export declare const selectMenuVars: (state: AppState) => {
|
|
|
38
37
|
serviceType: ServiceType | null;
|
|
39
38
|
requestedAt: RequestedAt;
|
|
40
39
|
};
|
|
41
|
-
export declare const selectCurrentVendor: (state: AppState) =>
|
|
40
|
+
export declare const selectCurrentVendor: (state: AppState) => MenuRevenueCenter | null;
|
|
42
41
|
export declare const selectCurrentCategory: (state: AppState) => MenuCategory | null;
|
|
43
42
|
export declare const selectCurrentItem: (state: AppState) => CartItem | null;
|
|
44
43
|
export declare const selectCart: (state: AppState) => Cart;
|
|
45
44
|
export declare const selectCartIds: (state: AppState) => number[];
|
|
46
45
|
export declare const selectCartQuantity: (state: AppState) => number;
|
|
47
46
|
export declare const selectCartTotal: (state: AppState) => number;
|
|
47
|
+
export declare const selectCartTotals: (state: AppState) => {
|
|
48
|
+
count: number;
|
|
49
|
+
total: number;
|
|
50
|
+
};
|
|
48
51
|
export declare const selectCartCounts: (state: AppState) => CartCounts;
|
|
49
52
|
export declare const selectCanOrder: (state: AppState) => 0 | RequestedAt | null;
|
|
50
53
|
export declare const selectCartValidate: (state: AppState) => {
|
package/dist/esm/slices/order.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
var _a;
|
|
2
2
|
import { __spreadArray } from "tslib";
|
|
3
3
|
import { createSlice } from '@reduxjs/toolkit';
|
|
4
|
-
import { addItem, calcCartCounts, decrementItem, incrementItem, makeRandomNumberString, orderTypeNamesMap, removeItem, serviceTypeNamesMap } from '
|
|
4
|
+
import { addItem, calcCartCounts, decrementItem, incrementItem, makeRandomNumberString, orderTypeNamesMap, removeItem, serviceTypeNamesMap } from '@open-tender/utils';
|
|
5
5
|
import { ReducerType } from './types';
|
|
6
6
|
var initialState = {
|
|
7
7
|
orderId: null,
|
|
@@ -189,9 +189,14 @@ export var selectCartQuantity = function (state) {
|
|
|
189
189
|
};
|
|
190
190
|
export var selectCartTotal = function (state) {
|
|
191
191
|
return state.order.cart
|
|
192
|
-
? state.order.cart.reduce(function (t, i) { return (t += i.totalPrice); }, 0.0)
|
|
192
|
+
? state.order.cart.reduce(function (t, i) { return (t += i.totalPrice || 0); }, 0.0)
|
|
193
193
|
: 0.0;
|
|
194
194
|
};
|
|
195
|
+
export var selectCartTotals = function (state) {
|
|
196
|
+
var count = selectCartQuantity(state);
|
|
197
|
+
var total = selectCartTotal(state);
|
|
198
|
+
return { count: count, total: total };
|
|
199
|
+
};
|
|
195
200
|
export var selectCartCounts = function (state) {
|
|
196
201
|
return state.order.cartCounts || {};
|
|
197
202
|
};
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import { ISOString } from '
|
|
2
|
-
import { DiscountType, Money, OrderType, ServiceType, TenderType } from '../global';
|
|
1
|
+
import { DiscountType, ISOString, Money, OrderType, ServiceType, TenderType } from '@open-tender/types';
|
|
3
2
|
import { Address, Customer } from './customer';
|
|
4
3
|
export interface CustomerIdentifier {
|
|
5
4
|
card_token?: string;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@open-tender/store",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.9.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",
|
|
@@ -58,8 +58,9 @@
|
|
|
58
58
|
},
|
|
59
59
|
"peerDependencies": {
|
|
60
60
|
"@emotion/react": "^11.11.1",
|
|
61
|
-
"@open-tender/types": "^0.4.
|
|
62
|
-
"@open-tender/ui": "^0.1.
|
|
61
|
+
"@open-tender/types": "^0.4.4",
|
|
62
|
+
"@open-tender/ui": "^0.1.18",
|
|
63
|
+
"@open-tender/utils": "^0.4.1",
|
|
63
64
|
"@reduxjs/toolkit": "^2.0.1",
|
|
64
65
|
"date-fns": "2.30.0",
|
|
65
66
|
"date-fns-tz": "^2.0.0",
|