@open-tender/store 1.1.3 → 1.1.5

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.
Files changed (275) hide show
  1. package/LICENSE.md +21 -21
  2. package/README.md +3 -3
  3. package/dist/cjs/components/Allergen.d.ts +8 -0
  4. package/dist/cjs/components/Allergen.js +10 -0
  5. package/dist/cjs/components/Applied.d.ts +6 -0
  6. package/dist/cjs/components/Applied.js +10 -0
  7. package/dist/cjs/components/ButtonLink.d.ts +9 -0
  8. package/dist/cjs/components/ButtonLink.js +10 -0
  9. package/dist/cjs/components/Card.d.ts +7 -0
  10. package/dist/cjs/components/Card.js +10 -0
  11. package/dist/cjs/components/Cart.d.ts +7 -0
  12. package/dist/cjs/components/Cart.js +41 -0
  13. package/dist/cjs/components/CartItem.d.ts +11 -0
  14. package/dist/cjs/components/CartItem.js +31 -0
  15. package/dist/cjs/components/CartUpsellItem.d.ts +10 -0
  16. package/dist/cjs/components/CartUpsellItem.js +24 -0
  17. package/dist/cjs/components/CartUpsells.d.ts +6 -0
  18. package/dist/cjs/components/CartUpsells.js +25 -0
  19. package/dist/cjs/components/CategoryItem.d.ts +11 -0
  20. package/dist/cjs/components/CategoryItem.js +27 -0
  21. package/dist/cjs/components/CategoryNav.d.ts +7 -0
  22. package/dist/cjs/components/CategoryNav.js +26 -0
  23. package/dist/cjs/components/CategoryNavItem.d.ts +9 -0
  24. package/dist/cjs/components/CategoryNavItem.js +27 -0
  25. package/dist/cjs/components/CategoryNavOther.d.ts +9 -0
  26. package/dist/cjs/components/CategoryNavOther.js +19 -0
  27. package/dist/cjs/components/CheckTotals.d.ts +8 -0
  28. package/dist/cjs/components/CheckTotals.js +10 -0
  29. package/dist/cjs/components/Discount.d.ts +8 -0
  30. package/dist/cjs/components/Discount.js +12 -0
  31. package/dist/cjs/components/ErrorMessage.d.ts +9 -0
  32. package/dist/cjs/components/ErrorMessage.js +10 -0
  33. package/dist/cjs/components/Header.d.ts +9 -0
  34. package/dist/cjs/components/Header.js +26 -0
  35. package/dist/cjs/components/Ingredients.d.ts +10 -0
  36. package/dist/cjs/components/Ingredients.js +11 -0
  37. package/dist/cjs/components/Input.d.ts +11 -0
  38. package/dist/cjs/components/Input.js +22 -0
  39. package/dist/cjs/components/ItemGroup.d.ts +9 -0
  40. package/dist/cjs/components/ItemGroup.js +18 -0
  41. package/dist/cjs/components/ItemGroups.d.ts +11 -0
  42. package/dist/cjs/components/ItemGroups.js +25 -0
  43. package/dist/cjs/components/ItemOption.d.ts +11 -0
  44. package/dist/cjs/components/ItemOption.js +30 -0
  45. package/dist/cjs/components/ItemSelections.d.ts +11 -0
  46. package/dist/cjs/components/ItemSelections.js +23 -0
  47. package/dist/cjs/components/Label.d.ts +10 -0
  48. package/dist/cjs/components/Label.js +10 -0
  49. package/dist/cjs/components/Loader.d.ts +8 -0
  50. package/dist/cjs/components/Loader.js +10 -0
  51. package/dist/cjs/components/MadeForNotes.d.ts +14 -0
  52. package/dist/cjs/components/MadeForNotes.js +29 -0
  53. package/dist/cjs/components/MenuCategory.d.ts +3 -3
  54. package/dist/cjs/components/MenuCategory.js +5 -5
  55. package/dist/cjs/components/MenuOther.d.ts +12 -0
  56. package/dist/cjs/components/MenuOther.js +16 -0
  57. package/dist/cjs/components/Modal.d.ts +9 -0
  58. package/dist/cjs/components/Modal.js +16 -0
  59. package/dist/cjs/components/ModalContent.d.ts +14 -0
  60. package/dist/cjs/components/ModalContent.js +20 -0
  61. package/dist/cjs/components/ModalHeader.d.ts +8 -0
  62. package/dist/cjs/components/ModalHeader.js +10 -0
  63. package/dist/cjs/components/NutritionalInfo.d.ts +11 -0
  64. package/dist/cjs/components/NutritionalInfo.js +18 -0
  65. package/dist/cjs/components/Option.d.ts +11 -0
  66. package/dist/cjs/components/Option.js +24 -0
  67. package/dist/cjs/components/OrderCard.d.ts +9 -0
  68. package/dist/cjs/components/OrderCard.js +56 -0
  69. package/dist/cjs/components/PointsReward.d.ts +10 -0
  70. package/dist/cjs/components/PointsReward.js +62 -0
  71. package/dist/cjs/components/PointsRewards.d.ts +6 -0
  72. package/dist/cjs/components/PointsRewards.js +24 -0
  73. package/dist/cjs/components/PromoCode.d.ts +7 -0
  74. package/dist/cjs/components/PromoCode.js +52 -0
  75. package/dist/cjs/components/Quantity.d.ts +13 -0
  76. package/dist/cjs/components/Quantity.js +19 -0
  77. package/dist/cjs/components/Reward.d.ts +10 -0
  78. package/dist/cjs/components/Reward.js +39 -0
  79. package/dist/cjs/components/Rewards.d.ts +10 -0
  80. package/dist/cjs/components/Rewards.js +15 -0
  81. package/dist/cjs/components/SignIn.d.ts +11 -0
  82. package/dist/cjs/components/SignIn.js +37 -0
  83. package/dist/cjs/components/SignInButton.d.ts +8 -0
  84. package/dist/cjs/components/SignInButton.js +41 -0
  85. package/dist/cjs/components/SignInCheckout.d.ts +9 -0
  86. package/dist/cjs/components/SignInCheckout.js +38 -0
  87. package/dist/cjs/components/SignInOptions.d.ts +7 -0
  88. package/dist/cjs/components/SignInOptions.js +28 -0
  89. package/dist/cjs/components/SignInPhone.d.ts +7 -0
  90. package/dist/cjs/components/SignInPhone.js +59 -0
  91. package/dist/cjs/components/SignInQr.d.ts +7 -0
  92. package/dist/cjs/components/SignInQr.js +61 -0
  93. package/dist/cjs/components/SuccessMessage.d.ts +9 -0
  94. package/dist/cjs/components/SuccessMessage.js +10 -0
  95. package/dist/cjs/components/Tag.d.ts +8 -0
  96. package/dist/cjs/components/Tag.js +10 -0
  97. package/dist/cjs/components/TextArea.d.ts +11 -0
  98. package/dist/cjs/components/TextArea.js +22 -0
  99. package/dist/cjs/components/UpsellItem.d.ts +10 -0
  100. package/dist/cjs/components/UpsellItem.js +24 -0
  101. package/dist/cjs/components/Upsells.d.ts +8 -0
  102. package/dist/cjs/components/Upsells.js +25 -0
  103. package/dist/cjs/components/index.d.ts +47 -1
  104. package/dist/cjs/components/index.js +93 -1
  105. package/dist/cjs/config/index.js +1 -1
  106. package/dist/cjs/hooks/useBarcode.js +1 -1
  107. package/dist/cjs/hooks/useChipDNATender/useChipDNATender.js +1 -1
  108. package/dist/cjs/hooks/useEmployee.js +8 -4
  109. package/dist/cjs/hooks/useGiftCardBalance.js +1 -1
  110. package/dist/cjs/hooks/useOrderValidate.js +1 -1
  111. package/dist/cjs/hooks/usePunch.js +1 -1
  112. package/dist/cjs/slices/alerts.js +1 -1
  113. package/dist/cjs/slices/arrivals.js +32 -36
  114. package/dist/cjs/slices/checkout.d.ts +1 -1
  115. package/dist/cjs/slices/checkout.js +329 -351
  116. package/dist/cjs/slices/config.js +79 -81
  117. package/dist/cjs/slices/customer.js +17 -19
  118. package/dist/cjs/slices/customerIdentify.js +16 -18
  119. package/dist/cjs/slices/deals.js +16 -18
  120. package/dist/cjs/slices/discounts.js +19 -21
  121. package/dist/cjs/slices/errorAlerts.d.ts +1 -1
  122. package/dist/cjs/slices/errorAlerts.js +34 -38
  123. package/dist/cjs/slices/kds.js +253 -275
  124. package/dist/cjs/slices/kiosk.d.ts +113 -1
  125. package/dist/cjs/slices/kiosk.js +74 -53
  126. package/dist/cjs/slices/menu.js +24 -26
  127. package/dist/cjs/slices/menuPages.js +16 -18
  128. package/dist/cjs/slices/notifications.js +1 -1
  129. package/dist/cjs/slices/offlineAuths.js +32 -36
  130. package/dist/cjs/slices/order.js +25 -27
  131. package/dist/cjs/slices/pos.js +59 -65
  132. package/dist/cjs/slices/punches.d.ts +1 -1
  133. package/dist/cjs/slices/punches.js +16 -18
  134. package/dist/cjs/slices/refund.js +54 -60
  135. package/dist/cjs/slices/settings.js +56 -62
  136. package/dist/cjs/slices/surcharges.js +19 -21
  137. package/dist/cjs/slices/taxes.js +19 -21
  138. package/dist/cjs/utils/punches.js +1 -1
  139. package/dist/esm/components/Allergen.d.ts +8 -0
  140. package/dist/esm/components/Allergen.js +8 -0
  141. package/dist/esm/components/Applied.d.ts +6 -0
  142. package/dist/esm/components/Applied.js +8 -0
  143. package/dist/esm/components/ButtonLink.d.ts +9 -0
  144. package/dist/esm/components/ButtonLink.js +8 -0
  145. package/dist/esm/components/Card.d.ts +7 -0
  146. package/dist/esm/components/Card.js +8 -0
  147. package/dist/esm/components/Cart.d.ts +7 -0
  148. package/dist/esm/components/Cart.js +38 -0
  149. package/dist/esm/components/CartItem.d.ts +11 -0
  150. package/dist/esm/components/CartItem.js +28 -0
  151. package/dist/esm/components/CartUpsellItem.d.ts +10 -0
  152. package/dist/esm/components/CartUpsellItem.js +22 -0
  153. package/dist/esm/components/CartUpsells.d.ts +6 -0
  154. package/dist/esm/components/CartUpsells.js +22 -0
  155. package/dist/esm/components/CategoryItem.d.ts +11 -0
  156. package/dist/esm/components/CategoryItem.js +25 -0
  157. package/dist/esm/components/CategoryNav.d.ts +7 -0
  158. package/dist/esm/components/CategoryNav.js +23 -0
  159. package/dist/esm/components/CategoryNavItem.d.ts +9 -0
  160. package/dist/esm/components/CategoryNavItem.js +25 -0
  161. package/dist/esm/components/CategoryNavOther.d.ts +9 -0
  162. package/dist/esm/components/CategoryNavOther.js +17 -0
  163. package/dist/esm/components/CheckTotals.d.ts +8 -0
  164. package/dist/esm/components/CheckTotals.js +8 -0
  165. package/dist/esm/components/Discount.d.ts +8 -0
  166. package/dist/esm/components/Discount.js +10 -0
  167. package/dist/esm/components/ErrorMessage.d.ts +9 -0
  168. package/dist/esm/components/ErrorMessage.js +8 -0
  169. package/dist/esm/components/Header.d.ts +9 -0
  170. package/dist/esm/components/Header.js +23 -0
  171. package/dist/esm/components/Ingredients.d.ts +10 -0
  172. package/dist/esm/components/Ingredients.js +9 -0
  173. package/dist/esm/components/Input.d.ts +11 -0
  174. package/dist/esm/components/Input.js +20 -0
  175. package/dist/esm/components/ItemGroup.d.ts +9 -0
  176. package/dist/esm/components/ItemGroup.js +16 -0
  177. package/dist/esm/components/ItemGroups.d.ts +11 -0
  178. package/dist/esm/components/ItemGroups.js +22 -0
  179. package/dist/esm/components/ItemOption.d.ts +11 -0
  180. package/dist/esm/components/ItemOption.js +28 -0
  181. package/dist/esm/components/ItemSelections.d.ts +11 -0
  182. package/dist/esm/components/ItemSelections.js +20 -0
  183. package/dist/esm/components/Label.d.ts +10 -0
  184. package/dist/esm/components/Label.js +8 -0
  185. package/dist/esm/components/Loader.d.ts +8 -0
  186. package/dist/esm/components/Loader.js +8 -0
  187. package/dist/esm/components/MadeForNotes.d.ts +14 -0
  188. package/dist/esm/components/MadeForNotes.js +26 -0
  189. package/dist/esm/components/MenuCategory.d.ts +3 -3
  190. package/dist/esm/components/MenuCategory.js +1 -1
  191. package/dist/esm/components/MenuOther.d.ts +12 -0
  192. package/dist/esm/components/MenuOther.js +14 -0
  193. package/dist/esm/components/Modal.d.ts +9 -0
  194. package/dist/esm/components/Modal.js +13 -0
  195. package/dist/esm/components/ModalContent.d.ts +14 -0
  196. package/dist/esm/components/ModalContent.js +18 -0
  197. package/dist/esm/components/ModalHeader.d.ts +8 -0
  198. package/dist/esm/components/ModalHeader.js +8 -0
  199. package/dist/esm/components/NutritionalInfo.d.ts +11 -0
  200. package/dist/esm/components/NutritionalInfo.js +16 -0
  201. package/dist/esm/components/Option.d.ts +11 -0
  202. package/dist/esm/components/Option.js +22 -0
  203. package/dist/esm/components/OrderCard.d.ts +9 -0
  204. package/dist/esm/components/OrderCard.js +53 -0
  205. package/dist/esm/components/PointsReward.d.ts +10 -0
  206. package/dist/esm/components/PointsReward.js +60 -0
  207. package/dist/esm/components/PointsRewards.d.ts +6 -0
  208. package/dist/esm/components/PointsRewards.js +21 -0
  209. package/dist/esm/components/PromoCode.d.ts +7 -0
  210. package/dist/esm/components/PromoCode.js +49 -0
  211. package/dist/esm/components/Quantity.d.ts +13 -0
  212. package/dist/esm/components/Quantity.js +17 -0
  213. package/dist/esm/components/Reward.d.ts +10 -0
  214. package/dist/esm/components/Reward.js +36 -0
  215. package/dist/esm/components/Rewards.d.ts +10 -0
  216. package/dist/esm/components/Rewards.js +12 -0
  217. package/dist/esm/components/SignIn.d.ts +11 -0
  218. package/dist/esm/components/SignIn.js +35 -0
  219. package/dist/esm/components/SignInButton.d.ts +8 -0
  220. package/dist/esm/components/SignInButton.js +39 -0
  221. package/dist/esm/components/SignInCheckout.d.ts +9 -0
  222. package/dist/esm/components/SignInCheckout.js +36 -0
  223. package/dist/esm/components/SignInOptions.d.ts +7 -0
  224. package/dist/esm/components/SignInOptions.js +25 -0
  225. package/dist/esm/components/SignInPhone.d.ts +7 -0
  226. package/dist/esm/components/SignInPhone.js +56 -0
  227. package/dist/esm/components/SignInQr.d.ts +7 -0
  228. package/dist/esm/components/SignInQr.js +59 -0
  229. package/dist/esm/components/SuccessMessage.d.ts +9 -0
  230. package/dist/esm/components/SuccessMessage.js +8 -0
  231. package/dist/esm/components/Tag.d.ts +8 -0
  232. package/dist/esm/components/Tag.js +8 -0
  233. package/dist/esm/components/TextArea.d.ts +11 -0
  234. package/dist/esm/components/TextArea.js +20 -0
  235. package/dist/esm/components/UpsellItem.d.ts +10 -0
  236. package/dist/esm/components/UpsellItem.js +22 -0
  237. package/dist/esm/components/Upsells.d.ts +8 -0
  238. package/dist/esm/components/Upsells.js +22 -0
  239. package/dist/esm/components/index.d.ts +47 -1
  240. package/dist/esm/components/index.js +47 -1
  241. package/dist/esm/config/index.js +1 -1
  242. package/dist/esm/hooks/useBarcode.js +1 -1
  243. package/dist/esm/hooks/useChipDNATender/useChipDNATender.js +1 -1
  244. package/dist/esm/hooks/useEmployee.js +9 -5
  245. package/dist/esm/hooks/useGiftCardBalance.js +1 -1
  246. package/dist/esm/hooks/useOrderValidate.js +1 -1
  247. package/dist/esm/hooks/usePunch.js +1 -1
  248. package/dist/esm/slices/alerts.js +1 -1
  249. package/dist/esm/slices/arrivals.js +32 -36
  250. package/dist/esm/slices/checkout.d.ts +1 -1
  251. package/dist/esm/slices/checkout.js +329 -351
  252. package/dist/esm/slices/config.js +79 -81
  253. package/dist/esm/slices/customer.js +17 -19
  254. package/dist/esm/slices/customerIdentify.js +16 -18
  255. package/dist/esm/slices/deals.js +16 -18
  256. package/dist/esm/slices/discounts.js +19 -21
  257. package/dist/esm/slices/errorAlerts.d.ts +1 -1
  258. package/dist/esm/slices/errorAlerts.js +34 -38
  259. package/dist/esm/slices/kds.js +253 -275
  260. package/dist/esm/slices/kiosk.d.ts +113 -1
  261. package/dist/esm/slices/kiosk.js +73 -52
  262. package/dist/esm/slices/menu.js +24 -26
  263. package/dist/esm/slices/menuPages.js +16 -18
  264. package/dist/esm/slices/notifications.js +1 -1
  265. package/dist/esm/slices/offlineAuths.js +32 -36
  266. package/dist/esm/slices/order.js +25 -27
  267. package/dist/esm/slices/pos.js +59 -65
  268. package/dist/esm/slices/punches.d.ts +1 -1
  269. package/dist/esm/slices/punches.js +16 -18
  270. package/dist/esm/slices/refund.js +54 -60
  271. package/dist/esm/slices/settings.js +56 -62
  272. package/dist/esm/slices/surcharges.js +19 -21
  273. package/dist/esm/slices/taxes.js +19 -21
  274. package/dist/esm/utils/punches.js +1 -1
  275. package/package.json +82 -75
@@ -0,0 +1,39 @@
1
+ import { useEffect } from 'react';
2
+ import { useAppDispatch, useAppSelector } from '../app/hooks';
3
+ import { fetchCustomer, openModal, resetCustomer, resetCustomerIdentify, resetMenu, selectCustomerIdentified, selectKioskConfig } from '../slices';
4
+ var endpoints = [
5
+ 'ACCOUNT',
6
+ 'DEALS',
7
+ 'FAVORITES',
8
+ 'ORDERS',
9
+ 'GIFT_CARDS',
10
+ 'LOYALTY',
11
+ 'REWARDS'
12
+ ];
13
+ var SignInButton = function (_a) {
14
+ var navigate = _a.navigate, children = _a.children, pathname = _a.pathname;
15
+ var dispatch = useAppDispatch();
16
+ var config = useAppSelector(selectKioskConfig).signInButton;
17
+ var customer = (useAppSelector(selectCustomerIdentified) || {}).customer;
18
+ var customerId = (customer || {}).customer_id;
19
+ var isAccount = pathname.includes('account');
20
+ var signIn = function () {
21
+ dispatch(openModal({ type: 'SIGN_IN' }));
22
+ };
23
+ var signOut = function () {
24
+ dispatch(resetCustomerIdentify());
25
+ dispatch(resetCustomer());
26
+ dispatch(resetMenu());
27
+ };
28
+ var goToAccount = function () { return navigate('/account'); };
29
+ var handlers = { signIn: signIn, signOut: signOut, goToAccount: goToAccount };
30
+ useEffect(function () {
31
+ if (customerId) {
32
+ dispatch(fetchCustomer({ customerId: customerId, endpoints: endpoints }));
33
+ }
34
+ }, [dispatch, customerId]);
35
+ if (!config)
36
+ return null;
37
+ return children({ config: config, handlers: handlers, customer: customer, isAccount: isAccount });
38
+ };
39
+ export default SignInButton;
@@ -0,0 +1,9 @@
1
+ import { KioskSignInType } from '@open-tender/types';
2
+ import { SignInCheckoutProps } from '@open-tender/ui';
3
+ import { ReactNode } from 'react';
4
+ declare const SignInCheckout: ({ setSignInType, navigate, children }: {
5
+ setSignInType: (signInType: KioskSignInType) => void;
6
+ navigate: (route: string) => void;
7
+ children: (props: SignInCheckoutProps) => ReactNode;
8
+ }) => ReactNode;
9
+ export default SignInCheckout;
@@ -0,0 +1,36 @@
1
+ import { useEffect } from 'react';
2
+ import { useAppDispatch, useAppSelector } from '../app/hooks';
3
+ import { fetchCustomer, resetCustomer, resetCustomerIdentify, resetMenu, selectCustomerIdentified, selectKioskConfig } from '../slices';
4
+ var endpoints = [
5
+ 'ACCOUNT',
6
+ 'DEALS',
7
+ 'FAVORITES',
8
+ 'ORDERS',
9
+ 'GIFT_CARDS',
10
+ 'LOYALTY',
11
+ 'REWARDS'
12
+ ];
13
+ var SignInCheckout = function (_a) {
14
+ var setSignInType = _a.setSignInType, navigate = _a.navigate, children = _a.children;
15
+ var dispatch = useAppDispatch();
16
+ var config = useAppSelector(selectKioskConfig).signInCheckout;
17
+ var customer = useAppSelector(selectCustomerIdentified);
18
+ var customerId = ((customer === null || customer === void 0 ? void 0 : customer.customer) || {}).customer_id;
19
+ var signOut = function () {
20
+ dispatch(resetCustomerIdentify());
21
+ dispatch(resetCustomer());
22
+ dispatch(resetMenu());
23
+ setSignInType(null);
24
+ };
25
+ var goToAccount = function () { return navigate('/account'); };
26
+ var handlers = { setSignInType: setSignInType, goToAccount: goToAccount, signOut: signOut };
27
+ useEffect(function () {
28
+ if (customerId) {
29
+ dispatch(fetchCustomer({ customerId: customerId, endpoints: endpoints }));
30
+ }
31
+ }, [dispatch, customerId]);
32
+ if (!config)
33
+ return null;
34
+ return children({ config: config, handlers: handlers, customer: customer });
35
+ };
36
+ export default SignInCheckout;
@@ -0,0 +1,7 @@
1
+ import { SignInOptionsProps } from '@open-tender/ui';
2
+ import React, { ReactNode } from 'react';
3
+ declare const SignInOptions: ({ close, children }: {
4
+ close: () => void;
5
+ children: (props: SignInOptionsProps) => ReactNode;
6
+ }) => React.ReactNode;
7
+ export default SignInOptions;
@@ -0,0 +1,25 @@
1
+ import { SignInPhone, SignInQr } from '@open-tender/ui';
2
+ import React, { useState } from 'react';
3
+ import { useAppSelector } from '../app/hooks';
4
+ import { selectKioskConfig } from '../slices';
5
+ import { default as SignInPhoneContainer } from './SignInPhone';
6
+ import { default as SignInQrContainer } from './SignInQr';
7
+ var SignInOptions = function (_a) {
8
+ var close = _a.close, children = _a.children;
9
+ var _b = useAppSelector(selectKioskConfig), config = _b.signInOptions, modalContentConfig = _b.modalContent;
10
+ var _c = useState(null), signInType = _c[0], setSignInType = _c[1];
11
+ var handlers = { close: close, setSignInType: setSignInType };
12
+ var renderSignInQr = function (close) { return (React.createElement(SignInQrContainer, { close: close, children: SignInQr })); };
13
+ var renderSignInPhone = function (close) { return (React.createElement(SignInPhoneContainer, { close: close, children: SignInPhone })); };
14
+ if (!config)
15
+ return null;
16
+ return children({
17
+ config: config,
18
+ handlers: handlers,
19
+ signInType: signInType,
20
+ modalContentConfig: modalContentConfig,
21
+ renderSignInQr: renderSignInQr,
22
+ renderSignInPhone: renderSignInPhone
23
+ });
24
+ };
25
+ export default SignInOptions;
@@ -0,0 +1,7 @@
1
+ import { SignInPhoneProps } from '@open-tender/ui';
2
+ import React, { ReactNode } from 'react';
3
+ declare const SignInPhone: ({ close, children }: {
4
+ close: () => void;
5
+ children: (props: SignInPhoneProps) => ReactNode;
6
+ }) => React.ReactNode;
7
+ export default SignInPhone;
@@ -0,0 +1,56 @@
1
+ import { Input, ErrorMessage } from '@open-tender/ui';
2
+ import { handleRespError, makePhone } from '@open-tender/utils';
3
+ import React, { useEffect, useState } from 'react';
4
+ import { useAppDispatch, useAppSelector } from '../app/hooks';
5
+ import { fetchCustomerIdentify, selectCustomerIdentify, selectKioskConfig } from '../slices';
6
+ import { default as ErrorMessageContainer } from './ErrorMessage';
7
+ import { default as InputContainer } from './Input';
8
+ var SignInPhone = function (_a) {
9
+ var close = _a.close, children = _a.children;
10
+ var dispatch = useAppDispatch();
11
+ var _b = useState(''), phone = _b[0], setPhone = _b[1];
12
+ var _c = useState(false), submitted = _c[0], setSubmitted = _c[1];
13
+ var _d = useState(null), errMsg = _d[0], setErrMsg = _d[1];
14
+ var _e = useAppSelector(selectKioskConfig), config = _e.signInPhone, modalContentConfig = _e.modalContent;
15
+ var _f = useAppSelector(selectCustomerIdentify), customer = _f.data, loading = _f.loading, error = _f.error;
16
+ var hasCustomer = !!customer;
17
+ var isLoading = loading === 'pending';
18
+ var update = function (value) {
19
+ setPhone(makePhone(value));
20
+ };
21
+ var submit = function () {
22
+ setSubmitted(true);
23
+ dispatch(fetchCustomerIdentify({ phone: phone }));
24
+ };
25
+ var handlers = { submit: submit, close: close };
26
+ useEffect(function () {
27
+ if (submitted && !isLoading) {
28
+ if (error) {
29
+ var detail = handleRespError(error).detail;
30
+ var errMsg_1 = (detail === null || detail === void 0 ? void 0 : detail.includes('does not exist'))
31
+ ? 'Phone number not recognized. Please try again.'
32
+ : detail;
33
+ setErrMsg(errMsg_1 || 'Something went wrong');
34
+ }
35
+ else {
36
+ close();
37
+ }
38
+ }
39
+ }, [submitted, isLoading, error, close]);
40
+ useEffect(function () {
41
+ if (hasCustomer)
42
+ close();
43
+ }, [hasCustomer, close]);
44
+ var renderInput = function (value, isRequired, style) { return (React.createElement(InputContainer, { setValue: update, value: value, isRequired: isRequired, style: style, children: Input })); };
45
+ var renderErrorMessage = function (errMsg) { return (React.createElement(ErrorMessageContainer, { content: errMsg, children: ErrorMessage })); };
46
+ return children({
47
+ config: config,
48
+ handlers: handlers,
49
+ phone: phone,
50
+ errMsg: errMsg,
51
+ modalContentConfig: modalContentConfig,
52
+ renderInput: renderInput,
53
+ renderErrorMessage: renderErrorMessage
54
+ });
55
+ };
56
+ export default SignInPhone;
@@ -0,0 +1,7 @@
1
+ import { SignInQrProps } from '@open-tender/ui';
2
+ import { ReactNode } from 'react';
3
+ declare const SignInQr: ({ close, children }: {
4
+ close: () => void;
5
+ children: (props: SignInQrProps) => ReactNode;
6
+ }) => ReactNode;
7
+ export default SignInQr;
@@ -0,0 +1,59 @@
1
+ import { handleRespError } from '@open-tender/utils';
2
+ import { useEffect, useState } from 'react';
3
+ import { useAppDispatch, useAppSelector } from '../app/hooks';
4
+ import { useBarcode } from '../hooks';
5
+ import { fetchCustomerIdentify, selectApi, selectCustomerIdentify, selectKioskConfig } from '../slices';
6
+ var SignInQr = function (_a) {
7
+ var close = _a.close, children = _a.children;
8
+ var dispatch = useAppDispatch();
9
+ var _b = useState(false), submitted = _b[0], setSubmitted = _b[1];
10
+ var _c = useState(false), hasRead = _c[0], setHasRead = _c[1];
11
+ var _d = useState(null), errMsg = _d[0], setErrMsg = _d[1];
12
+ var _e = useAppSelector(selectKioskConfig), config = _e.signInQr, errorMessageConfig = _e.errorMessage, modalContentConfig = _e.modalContent;
13
+ var api = useAppSelector(selectApi);
14
+ var scan = useBarcode(api);
15
+ var _f = useAppSelector(selectCustomerIdentify), customer = _f.data, loading = _f.loading, error = _f.error;
16
+ var isLoading = loading === 'pending';
17
+ var cancel = function () {
18
+ if (!scan.code)
19
+ scan.cancel();
20
+ close();
21
+ };
22
+ var retry = function () {
23
+ setHasRead(false);
24
+ setErrMsg(null);
25
+ };
26
+ useEffect(function () {
27
+ if (scan.error) {
28
+ setErrMsg(scan.error);
29
+ }
30
+ else if (scan.code && !customer) {
31
+ dispatch(fetchCustomerIdentify({ qr_code: scan.code }));
32
+ setSubmitted(true);
33
+ }
34
+ else if (!hasRead) {
35
+ setHasRead(true);
36
+ scan.read();
37
+ }
38
+ }, [dispatch, scan, close, customer, hasRead]);
39
+ var handlers = { close: cancel, retry: retry };
40
+ useEffect(function () {
41
+ if (submitted && !isLoading) {
42
+ if (error) {
43
+ var detail = handleRespError(error).detail;
44
+ setErrMsg(detail || 'Something went wrong');
45
+ }
46
+ else {
47
+ close();
48
+ }
49
+ }
50
+ }, [submitted, isLoading, error, close]);
51
+ return children({
52
+ config: config,
53
+ handlers: handlers,
54
+ errMsg: errMsg,
55
+ errorMessageConfig: errorMessageConfig,
56
+ modalContentConfig: modalContentConfig
57
+ });
58
+ };
59
+ export default SignInQr;
@@ -0,0 +1,9 @@
1
+ import { Styles, SuccessMessageProps } from '@open-tender/ui';
2
+ import { ReactNode } from 'react';
3
+ declare const SuccessMessage: ({ content, icon, style, children }: {
4
+ content: string;
5
+ icon?: ReactNode;
6
+ style?: Styles;
7
+ children: (props: SuccessMessageProps) => ReactNode;
8
+ }) => ReactNode;
9
+ export default SuccessMessage;
@@ -0,0 +1,8 @@
1
+ import { useAppSelector } from '../app/hooks';
2
+ import { selectKioskConfig } from '../slices';
3
+ var SuccessMessage = function (_a) {
4
+ var content = _a.content, icon = _a.icon, style = _a.style, children = _a.children;
5
+ var config = useAppSelector(selectKioskConfig).successMessage;
6
+ return children({ config: config, icon: icon, style: style, children: content });
7
+ };
8
+ export default SuccessMessage;
@@ -0,0 +1,8 @@
1
+ import { Tag as TagType } from '@open-tender/types';
2
+ import { TagProps } from '@open-tender/ui';
3
+ import { ReactNode } from 'react';
4
+ declare const Tag: ({ tag, children }: {
5
+ tag: TagType;
6
+ children: (props: TagProps) => ReactNode;
7
+ }) => ReactNode;
8
+ export default Tag;
@@ -0,0 +1,8 @@
1
+ import { useAppSelector } from '../app/hooks';
2
+ import { selectKioskConfig } from '../slices';
3
+ var Tag = function (_a) {
4
+ var tag = _a.tag, children = _a.children;
5
+ var config = useAppSelector(selectKioskConfig).tag;
6
+ return children({ config: config, tag: tag });
7
+ };
8
+ export default Tag;
@@ -0,0 +1,11 @@
1
+ import { Styles, TextAreaProps } from '@open-tender/ui';
2
+ import { ReactNode } from 'react';
3
+ declare const TextArea: ({ label, value, setValue, isRequired, style, children }: {
4
+ label?: string;
5
+ value: string;
6
+ setValue: (value: string) => void;
7
+ isRequired?: boolean;
8
+ style?: Styles;
9
+ children: (props: TextAreaProps) => ReactNode;
10
+ }) => ReactNode;
11
+ export default TextArea;
@@ -0,0 +1,20 @@
1
+ import { useAppSelector } from '../app/hooks';
2
+ import { selectKioskConfig } from '../slices';
3
+ var TextArea = function (_a) {
4
+ var label = _a.label, value = _a.value, setValue = _a.setValue, isRequired = _a.isRequired, style = _a.style, children = _a.children;
5
+ var _b = useAppSelector(selectKioskConfig), config = _b.input, labelConfig = _b.label;
6
+ var update = function (evt) {
7
+ setValue(evt.target.value);
8
+ };
9
+ var handlers = { update: update };
10
+ return children({
11
+ config: config,
12
+ handlers: handlers,
13
+ label: label,
14
+ value: value,
15
+ isRequired: isRequired,
16
+ style: style,
17
+ labelConfig: labelConfig
18
+ });
19
+ };
20
+ export default TextArea;
@@ -0,0 +1,10 @@
1
+ import { CartItem } from '@open-tender/types';
2
+ import { UpsellItemProps } from '@open-tender/ui';
3
+ import { ReactNode } from 'react';
4
+ declare const UpsellItem: ({ item, callback, isLast, children }: {
5
+ item: CartItem;
6
+ callback?: () => void;
7
+ isLast?: boolean;
8
+ children: (props: UpsellItemProps) => ReactNode;
9
+ }) => ReactNode;
10
+ export default UpsellItem;
@@ -0,0 +1,22 @@
1
+ import { hasGroupsBelowMin, useBuilder } from '@open-tender/utils';
2
+ import { useAppDispatch, useAppSelector } from '../app/hooks';
3
+ import { addItemToCart, selectKioskConfig } from '../slices';
4
+ var UpsellItem = function (_a) {
5
+ var item = _a.item, callback = _a.callback, isLast = _a.isLast, children = _a.children;
6
+ var dispatch = useAppDispatch();
7
+ var _b = useAppSelector(selectKioskConfig), config = _b.upsellItem, cardConfig = _b.card;
8
+ var builtItem = useBuilder(item).item;
9
+ var quantity = builtItem.quantity, groups = builtItem.groups;
10
+ var groupsBelowMin = hasGroupsBelowMin(null, groups);
11
+ var isIncomplete = "".concat(quantity) === '' || quantity === 0 || groupsBelowMin;
12
+ var add = function () {
13
+ if (!isIncomplete) {
14
+ dispatch(addItemToCart(builtItem));
15
+ if (callback)
16
+ callback();
17
+ }
18
+ };
19
+ var handlers = { add: add };
20
+ return children({ config: config, handlers: handlers, item: item, isLast: isLast, cardConfig: cardConfig });
21
+ };
22
+ export default UpsellItem;
@@ -0,0 +1,8 @@
1
+ import { UpsellsProps } from '@open-tender/ui';
2
+ import React, { ReactNode } from 'react';
3
+ declare const Upsells: ({ itemIds, close, children }: {
4
+ itemIds: number[];
5
+ close: () => void;
6
+ children: (props: UpsellsProps) => ReactNode;
7
+ }) => React.ReactNode;
8
+ export default Upsells;
@@ -0,0 +1,22 @@
1
+ import { UpsellItem } from '@open-tender/ui';
2
+ import { makeMenuItemLookup, makeUpsellItems } from '@open-tender/utils';
3
+ import React, { useMemo } from 'react';
4
+ import { useAppSelector } from '../app/hooks';
5
+ import { selectKioskConfig, selectMenu } from '../slices';
6
+ import { default as UpsellItemContainer } from './UpsellItem';
7
+ var Upsells = function (_a) {
8
+ var itemIds = _a.itemIds, close = _a.close, children = _a.children;
9
+ var config = useAppSelector(selectKioskConfig).upsells;
10
+ var categories = useAppSelector(selectMenu).categories;
11
+ var itemLookup = useMemo(function () { return makeMenuItemLookup(categories); }, [categories]);
12
+ var items = makeUpsellItems(itemIds, itemLookup);
13
+ var handlers = { close: close };
14
+ var renderUpsellItem = function (item, isLast) { return (React.createElement(UpsellItemContainer, { item: item, isLast: isLast, children: UpsellItem })); };
15
+ return children({
16
+ config: config,
17
+ handlers: handlers,
18
+ items: items.slice(0, 5),
19
+ renderUpsellItem: renderUpsellItem
20
+ });
21
+ };
22
+ export default Upsells;
@@ -1,2 +1,48 @@
1
+ import Allergen from './Allergen';
2
+ import Applied from './Applied';
3
+ import ButtonLink from './ButtonLink';
4
+ import Cart from './Cart';
5
+ import CartItem from './CartItem';
6
+ import CartUpsellItem from './CartUpsellItem';
7
+ import CategoryItem from './CategoryItem';
8
+ import CategoryNav from './CategoryNav';
9
+ import CategoryNavItem from './CategoryNavItem';
10
+ import CategoryNavOther from './CategoryNavOther';
11
+ import CheckTotals from './CheckTotals';
12
+ import Discount from './Discount';
13
+ import ErrorMessage from './ErrorMessage';
14
+ import Header from './Header';
15
+ import Ingredients from './Ingredients';
16
+ import Input from './Input';
17
+ import ItemGroup from './ItemGroup';
18
+ import ItemGroups from './ItemGroups';
19
+ import ItemOption from './ItemOption';
20
+ import ItemSelections from './ItemSelections';
21
+ import Loader from './Loader';
22
+ import MadeForNotes from './MadeForNotes';
1
23
  import MenuCategory from './MenuCategory';
2
- export { MenuCategory };
24
+ import MenuOther from './MenuOther';
25
+ import Modal from './Modal';
26
+ import ModalContent from './ModalContent';
27
+ import ModalHeader from './ModalHeader';
28
+ import NutritionalInfo from './NutritionalInfo';
29
+ import Option from './Option';
30
+ import OrderCard from './OrderCard';
31
+ import PointsReward from './PointsReward';
32
+ import PointsRewards from './PointsRewards';
33
+ import PromoCode from './PromoCode';
34
+ import Quantity from './Quantity';
35
+ import Reward from './Reward';
36
+ import Rewards from './Rewards';
37
+ import SignIn from './SignIn';
38
+ import SignInButton from './SignInButton';
39
+ import SignInCheckout from './SignInCheckout';
40
+ import SignInOptions from './SignInOptions';
41
+ import SignInPhone from './SignInPhone';
42
+ import SignInQr from './SignInQr';
43
+ import SuccessMessage from './SuccessMessage';
44
+ import Tag from './Tag';
45
+ import TextArea from './TextArea';
46
+ import UpsellItem from './UpsellItem';
47
+ import Upsells from './Upsells';
48
+ export { Allergen, Applied, ButtonLink, Cart, CartItem, CartUpsellItem, CategoryItem, CategoryNav, CategoryNavItem, CategoryNavOther, CheckTotals, Discount, ErrorMessage, Header, Ingredients, Input, ItemGroup, ItemGroups, ItemOption, ItemSelections, Loader, MadeForNotes, MenuCategory, MenuOther, Modal, ModalContent, ModalHeader, NutritionalInfo, Option, OrderCard, PointsReward, PointsRewards, PromoCode, Quantity, Reward, Rewards, SignIn, SignInButton, SignInCheckout, SignInOptions, SignInPhone, SignInQr, SuccessMessage, Tag, TextArea, UpsellItem, Upsells };
@@ -1,2 +1,48 @@
1
+ import Allergen from './Allergen';
2
+ import Applied from './Applied';
3
+ import ButtonLink from './ButtonLink';
4
+ import Cart from './Cart';
5
+ import CartItem from './CartItem';
6
+ import CartUpsellItem from './CartUpsellItem';
7
+ import CategoryItem from './CategoryItem';
8
+ import CategoryNav from './CategoryNav';
9
+ import CategoryNavItem from './CategoryNavItem';
10
+ import CategoryNavOther from './CategoryNavOther';
11
+ import CheckTotals from './CheckTotals';
12
+ import Discount from './Discount';
13
+ import ErrorMessage from './ErrorMessage';
14
+ import Header from './Header';
15
+ import Ingredients from './Ingredients';
16
+ import Input from './Input';
17
+ import ItemGroup from './ItemGroup';
18
+ import ItemGroups from './ItemGroups';
19
+ import ItemOption from './ItemOption';
20
+ import ItemSelections from './ItemSelections';
21
+ import Loader from './Loader';
22
+ import MadeForNotes from './MadeForNotes';
1
23
  import MenuCategory from './MenuCategory';
2
- export { MenuCategory };
24
+ import MenuOther from './MenuOther';
25
+ import Modal from './Modal';
26
+ import ModalContent from './ModalContent';
27
+ import ModalHeader from './ModalHeader';
28
+ import NutritionalInfo from './NutritionalInfo';
29
+ import Option from './Option';
30
+ import OrderCard from './OrderCard';
31
+ import PointsReward from './PointsReward';
32
+ import PointsRewards from './PointsRewards';
33
+ import PromoCode from './PromoCode';
34
+ import Quantity from './Quantity';
35
+ import Reward from './Reward';
36
+ import Rewards from './Rewards';
37
+ import SignIn from './SignIn';
38
+ import SignInButton from './SignInButton';
39
+ import SignInCheckout from './SignInCheckout';
40
+ import SignInOptions from './SignInOptions';
41
+ import SignInPhone from './SignInPhone';
42
+ import SignInQr from './SignInQr';
43
+ import SuccessMessage from './SuccessMessage';
44
+ import Tag from './Tag';
45
+ import TextArea from './TextArea';
46
+ import UpsellItem from './UpsellItem';
47
+ import Upsells from './Upsells';
48
+ export { Allergen, Applied, ButtonLink, Cart, CartItem, CartUpsellItem, CategoryItem, CategoryNav, CategoryNavItem, CategoryNavOther, CheckTotals, Discount, ErrorMessage, Header, Ingredients, Input, ItemGroup, ItemGroups, ItemOption, ItemSelections, Loader, MadeForNotes, MenuCategory, MenuOther, Modal, ModalContent, ModalHeader, NutritionalInfo, Option, OrderCard, PointsReward, PointsRewards, PromoCode, Quantity, Reward, Rewards, SignIn, SignInButton, SignInCheckout, SignInOptions, SignInPhone, SignInQr, SuccessMessage, Tag, TextArea, UpsellItem, Upsells };
@@ -49,8 +49,8 @@ import pointsReward from './pointsReward';
49
49
  import pointsRewards from './pointsRewards';
50
50
  import promoCode from './promoCode';
51
51
  import quantity from './quantity';
52
- import rewards from './rewards';
53
52
  import reward from './reward';
53
+ import rewards from './rewards';
54
54
  import signIn from './signIn';
55
55
  import signInButton from './signInButton';
56
56
  import signInCheckout from './signInCheckout';
@@ -1,6 +1,6 @@
1
1
  import { __awaiter, __generator } from "tslib";
2
- import { useCallback, useEffect, useMemo, useRef, useState } from 'react';
3
2
  import { handleRespError } from '@open-tender/utils';
3
+ import { useCallback, useEffect, useMemo, useRef, useState } from 'react';
4
4
  var useBarcode = function (api) {
5
5
  var isAborted = useRef(false);
6
6
  var _a = useState(null), code = _a[0], setCode = _a[1];
@@ -1,6 +1,6 @@
1
1
  import { __awaiter, __generator } from "tslib";
2
- import { useEffect, useState } from 'react';
3
2
  import { handleRespError } from '@open-tender/utils';
3
+ import { useEffect, useState } from 'react';
4
4
  import { useAppDispatch, useAppSelector } from '../../app/hooks';
5
5
  import { completeChipDNA, selectApi, selectOrder } from '../../slices';
6
6
  import { processMessage } from './useChipDNATender.utils';
@@ -1,6 +1,6 @@
1
- import { __awaiter, __generator } from "tslib";
2
- import { useState, useEffect, useRef, useCallback, useMemo } from 'react';
1
+ import { __awaiter, __generator, __spreadArray } from "tslib";
3
2
  import { handleRespError } from '@open-tender/utils';
3
+ import { useState, useEffect, useRef, useCallback, useMemo } from 'react';
4
4
  var useEmployee = function (api) {
5
5
  var isAborted = useRef(false);
6
6
  var _a = useState(null), employee = _a[0], setEmployee = _a[1];
@@ -10,10 +10,14 @@ var useEmployee = function (api) {
10
10
  isAborted.current = true;
11
11
  };
12
12
  }, []);
13
- var fetch = useCallback(function (identifier, withPunches) {
14
- if (withPunches === void 0) { withPunches = false; }
15
- return __awaiter(void 0, void 0, void 0, function () {
13
+ var fetch = useCallback(function (identifier_1) {
14
+ var args_1 = [];
15
+ for (var _i = 1; _i < arguments.length; _i++) {
16
+ args_1[_i - 1] = arguments[_i];
17
+ }
18
+ return __awaiter(void 0, __spreadArray([identifier_1], args_1, true), void 0, function (identifier, withPunches) {
16
19
  var employee_1, employee_id, response, err_1, detail;
20
+ if (withPunches === void 0) { withPunches = false; }
17
21
  return __generator(this, function (_a) {
18
22
  switch (_a.label) {
19
23
  case 0:
@@ -1,6 +1,6 @@
1
1
  import { __awaiter, __generator } from "tslib";
2
- import { useState, useEffect, useRef, useCallback, useMemo } from 'react';
3
2
  import { handleRespError } from '@open-tender/utils';
3
+ import { useState, useEffect, useRef, useCallback, useMemo } from 'react';
4
4
  var useGiftCardBalance = function (api) {
5
5
  var isAborted = useRef(false);
6
6
  var _a = useState(null), giftCard = _a[0], setGiftCard = _a[1];
@@ -1,8 +1,8 @@
1
1
  import { __rest } from "tslib";
2
2
  import { useEffect } from 'react';
3
3
  import isEqual from 'react-fast-compare';
4
- import { prepareOrder, selectOrder, selectPosCheckout, validatePosOrder } from '../slices';
5
4
  import { useAppDispatch, useAppSelector } from '../app/hooks';
5
+ import { prepareOrder, selectOrder, selectPosCheckout, validatePosOrder } from '../slices';
6
6
  import usePrevious from './usePrevious';
7
7
  var useOrderValidate = function () {
8
8
  var dispatch = useAppDispatch();
@@ -1,6 +1,6 @@
1
1
  import { __awaiter, __generator } from "tslib";
2
- import { useState, useEffect, useRef, useCallback, useMemo } from 'react';
3
2
  import { handleRespError } from '@open-tender/utils';
3
+ import { useState, useEffect, useRef, useCallback, useMemo } from 'react';
4
4
  import { makePunchMessage } from '../utils';
5
5
  var codeErrMsg = 'Employee has been assigned a swipe card. Please use card to punch in / out.';
6
6
  var deptErrMsg = "This employee doesn't have any departments. Please contact HR.";
@@ -1,7 +1,7 @@
1
1
  var _a;
2
2
  import { __spreadArray } from "tslib";
3
- import { createSlice } from '@reduxjs/toolkit';
4
3
  import { makeRandomNumberString } from '@open-tender/utils';
4
+ import { createSlice } from '@reduxjs/toolkit';
5
5
  import { ReducerType } from './types';
6
6
  var initialState = [];
7
7
  var alertsSlice = createSlice({