@open-tender/store 1.0.36 → 1.1.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.
Files changed (285) hide show
  1. package/dist/cjs/app/hooks.d.ts +2 -2
  2. package/dist/cjs/app/store.d.ts +8 -8
  3. package/dist/cjs/components/MenuCategory.d.ts +9 -0
  4. package/dist/cjs/components/MenuCategory.js +18 -0
  5. package/dist/cjs/components/index.d.ts +2 -0
  6. package/dist/cjs/components/index.js +6 -0
  7. package/dist/cjs/hooks/index.d.ts +2 -2
  8. package/dist/cjs/hooks/index.js +3 -3
  9. package/dist/cjs/hooks/useBarcode.js +3 -3
  10. package/dist/cjs/hooks/useCardSwipe.js +3 -3
  11. package/dist/cjs/hooks/useEmployee.d.ts +1 -1
  12. package/dist/cjs/hooks/useEmployee.js +3 -3
  13. package/dist/cjs/hooks/useGiftCardBalance.d.ts +1 -1
  14. package/dist/cjs/hooks/useGiftCardBalance.js +2 -2
  15. package/dist/cjs/hooks/useKioskImageUrl.d.ts +2 -0
  16. package/dist/cjs/hooks/useKioskImageUrl.js +14 -0
  17. package/dist/cjs/hooks/usePunch.d.ts +1 -1
  18. package/dist/cjs/hooks/usePunch.js +5 -4
  19. package/dist/cjs/hooks/useRefund.d.ts +1 -1
  20. package/dist/cjs/index.d.ts +1 -1
  21. package/dist/cjs/index.js +1 -1
  22. package/dist/cjs/services/api.d.ts +5 -7
  23. package/dist/cjs/services/api.js +0 -3
  24. package/dist/cjs/slices/alerts.d.ts +1 -1
  25. package/dist/cjs/slices/alerts.js +1 -1
  26. package/dist/cjs/slices/arrivals.d.ts +1 -1
  27. package/dist/cjs/slices/arrivals.js +0 -1
  28. package/dist/cjs/slices/checkout.d.ts +2 -3
  29. package/dist/cjs/slices/checkout.js +2 -3
  30. package/dist/cjs/slices/customer.d.ts +1 -1
  31. package/dist/cjs/slices/customerIdentify.d.ts +1 -1
  32. package/dist/cjs/slices/deals.d.ts +1 -1
  33. package/dist/cjs/slices/discounts.d.ts +1 -1
  34. package/dist/cjs/slices/errorAlerts.d.ts +1 -1
  35. package/dist/cjs/slices/kds.d.ts +1 -1
  36. package/dist/cjs/slices/kds.js +25 -25
  37. package/dist/cjs/slices/kiosk.d.ts +51 -4
  38. package/dist/cjs/slices/kiosk.js +9 -2
  39. package/dist/cjs/slices/menu.js +1 -1
  40. package/dist/cjs/slices/menuPages.d.ts +11 -11
  41. package/dist/cjs/slices/menuPages.js +5 -4
  42. package/dist/cjs/slices/notifications.d.ts +1 -1
  43. package/dist/cjs/slices/notifications.js +1 -1
  44. package/dist/cjs/slices/offlineAuths.d.ts +1 -1
  45. package/dist/cjs/slices/order.d.ts +8 -8
  46. package/dist/cjs/slices/order.js +1 -2
  47. package/dist/cjs/slices/pos.d.ts +1 -2
  48. package/dist/cjs/slices/pos.js +1 -1
  49. package/dist/cjs/slices/punches.d.ts +1 -1
  50. package/dist/cjs/slices/refund.d.ts +1 -2
  51. package/dist/cjs/slices/settings.d.ts +4 -4
  52. package/dist/cjs/slices/surcharges.d.ts +2 -2
  53. package/dist/cjs/slices/taxes.d.ts +1 -1
  54. package/dist/cjs/utils/index.d.ts +0 -6
  55. package/dist/cjs/utils/index.js +2 -6
  56. package/dist/cjs/utils/menu.d.ts +6 -6
  57. package/dist/cjs/utils/menu.js +6 -3
  58. package/dist/cjs/utils/orders.js +31 -31
  59. package/dist/cjs/utils/pos.d.ts +1 -1
  60. package/dist/cjs/utils/pos.js +4 -4
  61. package/dist/cjs/utils/punches.d.ts +1 -1
  62. package/dist/cjs/utils/punches.js +5 -5
  63. package/dist/cjs/utils/refunds.d.ts +2 -2
  64. package/dist/cjs/utils/refunds.js +15 -8
  65. package/dist/esm/app/hooks.d.ts +2 -2
  66. package/dist/esm/app/store.d.ts +8 -8
  67. package/dist/esm/components/MenuCategory.d.ts +9 -0
  68. package/dist/esm/components/MenuCategory.js +16 -0
  69. package/dist/esm/components/index.d.ts +2 -0
  70. package/dist/esm/components/index.js +2 -0
  71. package/dist/esm/hooks/index.d.ts +2 -2
  72. package/dist/esm/hooks/index.js +2 -2
  73. package/dist/esm/hooks/useBarcode.js +3 -3
  74. package/dist/esm/hooks/useCardSwipe.js +3 -3
  75. package/dist/esm/hooks/useEmployee.d.ts +1 -1
  76. package/dist/esm/hooks/useEmployee.js +3 -3
  77. package/dist/esm/hooks/useGiftCardBalance.d.ts +1 -1
  78. package/dist/esm/hooks/useGiftCardBalance.js +2 -2
  79. package/dist/esm/hooks/useKioskImageUrl.d.ts +2 -0
  80. package/dist/esm/hooks/useKioskImageUrl.js +10 -0
  81. package/dist/esm/hooks/usePunch.d.ts +1 -1
  82. package/dist/esm/hooks/usePunch.js +4 -3
  83. package/dist/esm/hooks/useRefund.d.ts +1 -1
  84. package/dist/esm/index.d.ts +1 -1
  85. package/dist/esm/index.js +1 -1
  86. package/dist/esm/services/api.d.ts +5 -7
  87. package/dist/esm/services/api.js +0 -3
  88. package/dist/esm/slices/alerts.d.ts +1 -1
  89. package/dist/esm/slices/alerts.js +1 -1
  90. package/dist/esm/slices/arrivals.d.ts +1 -1
  91. package/dist/esm/slices/arrivals.js +0 -1
  92. package/dist/esm/slices/checkout.d.ts +2 -3
  93. package/dist/esm/slices/checkout.js +1 -2
  94. package/dist/esm/slices/customer.d.ts +1 -1
  95. package/dist/esm/slices/customerIdentify.d.ts +1 -1
  96. package/dist/esm/slices/deals.d.ts +1 -1
  97. package/dist/esm/slices/discounts.d.ts +1 -1
  98. package/dist/esm/slices/errorAlerts.d.ts +1 -1
  99. package/dist/esm/slices/kds.d.ts +1 -1
  100. package/dist/esm/slices/kds.js +6 -2
  101. package/dist/esm/slices/kiosk.d.ts +51 -4
  102. package/dist/esm/slices/kiosk.js +8 -1
  103. package/dist/esm/slices/menu.js +1 -1
  104. package/dist/esm/slices/menuPages.d.ts +11 -11
  105. package/dist/esm/slices/menuPages.js +5 -4
  106. package/dist/esm/slices/notifications.d.ts +1 -1
  107. package/dist/esm/slices/notifications.js +1 -1
  108. package/dist/esm/slices/offlineAuths.d.ts +1 -1
  109. package/dist/esm/slices/order.d.ts +8 -8
  110. package/dist/esm/slices/order.js +1 -4
  111. package/dist/esm/slices/pos.d.ts +1 -2
  112. package/dist/esm/slices/pos.js +1 -1
  113. package/dist/esm/slices/punches.d.ts +1 -1
  114. package/dist/esm/slices/refund.d.ts +1 -2
  115. package/dist/esm/slices/settings.d.ts +4 -4
  116. package/dist/esm/slices/surcharges.d.ts +2 -2
  117. package/dist/esm/slices/taxes.d.ts +1 -1
  118. package/dist/esm/utils/index.d.ts +0 -6
  119. package/dist/esm/utils/index.js +2 -6
  120. package/dist/esm/utils/menu.d.ts +6 -6
  121. package/dist/esm/utils/menu.js +6 -3
  122. package/dist/esm/utils/orders.js +1 -1
  123. package/dist/esm/utils/pos.d.ts +1 -1
  124. package/dist/esm/utils/pos.js +1 -1
  125. package/dist/esm/utils/punches.d.ts +1 -1
  126. package/dist/esm/utils/punches.js +1 -1
  127. package/dist/esm/utils/refunds.d.ts +2 -2
  128. package/dist/esm/utils/refunds.js +15 -8
  129. package/package.json +4 -4
  130. package/dist/cjs/hooks/useBuilder.d.ts +0 -14
  131. package/dist/cjs/hooks/useBuilder.js +0 -146
  132. package/dist/cjs/types/api/alerts.d.ts +0 -5
  133. package/dist/cjs/types/api/alerts.js +0 -2
  134. package/dist/cjs/types/api/arrivals.d.ts +0 -14
  135. package/dist/cjs/types/api/arrivals.js +0 -2
  136. package/dist/cjs/types/api/cart.d.ts +0 -72
  137. package/dist/cjs/types/api/cart.js +0 -2
  138. package/dist/cjs/types/api/checkout.d.ts +0 -92
  139. package/dist/cjs/types/api/checkout.js +0 -2
  140. package/dist/cjs/types/api/customer.d.ts +0 -58
  141. package/dist/cjs/types/api/customer.js +0 -2
  142. package/dist/cjs/types/api/device.d.ts +0 -3
  143. package/dist/cjs/types/api/device.js +0 -2
  144. package/dist/cjs/types/api/devices.d.ts +0 -89
  145. package/dist/cjs/types/api/devices.js +0 -2
  146. package/dist/cjs/types/api/discounts.d.ts +0 -20
  147. package/dist/cjs/types/api/discounts.js +0 -2
  148. package/dist/cjs/types/api/employee.d.ts +0 -70
  149. package/dist/cjs/types/api/employee.js +0 -2
  150. package/dist/cjs/types/api/errorAlerts.d.ts +0 -9
  151. package/dist/cjs/types/api/errorAlerts.js +0 -2
  152. package/dist/cjs/types/api/favorite.d.ts +0 -69
  153. package/dist/cjs/types/api/favorite.js +0 -2
  154. package/dist/cjs/types/api/giftCard.d.ts +0 -11
  155. package/dist/cjs/types/api/giftCard.js +0 -2
  156. package/dist/cjs/types/api/index.d.ts +0 -26
  157. package/dist/cjs/types/api/index.js +0 -29
  158. package/dist/cjs/types/api/kiosk.d.ts +0 -33
  159. package/dist/cjs/types/api/kiosk.js +0 -2
  160. package/dist/cjs/types/api/menu.d.ts +0 -150
  161. package/dist/cjs/types/api/menu.js +0 -2
  162. package/dist/cjs/types/api/menuPages.d.ts +0 -21
  163. package/dist/cjs/types/api/menuPages.js +0 -2
  164. package/dist/cjs/types/api/messages.d.ts +0 -5
  165. package/dist/cjs/types/api/messages.js +0 -2
  166. package/dist/cjs/types/api/notifications.d.ts +0 -5
  167. package/dist/cjs/types/api/notifications.js +0 -2
  168. package/dist/cjs/types/api/offlineAuths.d.ts +0 -12
  169. package/dist/cjs/types/api/offlineAuths.js +0 -2
  170. package/dist/cjs/types/api/order.d.ts +0 -331
  171. package/dist/cjs/types/api/order.js +0 -2
  172. package/dist/cjs/types/api/refund.d.ts +0 -22
  173. package/dist/cjs/types/api/refund.js +0 -2
  174. package/dist/cjs/types/api/revenueCenter.d.ts +0 -55
  175. package/dist/cjs/types/api/revenueCenter.js +0 -2
  176. package/dist/cjs/types/api/settings.d.ts +0 -10
  177. package/dist/cjs/types/api/settings.js +0 -2
  178. package/dist/cjs/types/api/store.d.ts +0 -106
  179. package/dist/cjs/types/api/store.js +0 -2
  180. package/dist/cjs/types/api/surcharges.d.ts +0 -15
  181. package/dist/cjs/types/api/surcharges.js +0 -2
  182. package/dist/cjs/types/api/taxes.d.ts +0 -15
  183. package/dist/cjs/types/api/taxes.js +0 -2
  184. package/dist/cjs/types/api/themeCloud.d.ts +0 -354
  185. package/dist/cjs/types/api/themeCloud.js +0 -2
  186. package/dist/cjs/types/datetimes.d.ts +0 -37
  187. package/dist/cjs/types/datetimes.js +0 -2
  188. package/dist/cjs/types/global.d.ts +0 -39
  189. package/dist/cjs/types/global.js +0 -2
  190. package/dist/cjs/types/index.d.ts +0 -5
  191. package/dist/cjs/types/index.js +0 -8
  192. package/dist/cjs/types/request.d.ts +0 -14
  193. package/dist/cjs/types/request.js +0 -2
  194. package/dist/cjs/types/theme.d.ts +0 -117
  195. package/dist/cjs/types/theme.js +0 -2
  196. package/dist/cjs/utils/datetimes.d.ts +0 -32
  197. package/dist/cjs/utils/datetimes.js +0 -147
  198. package/dist/cjs/utils/helpers.d.ts +0 -36
  199. package/dist/cjs/utils/helpers.js +0 -148
  200. package/dist/cjs/utils/keypad.d.ts +0 -9
  201. package/dist/cjs/utils/keypad.js +0 -106
  202. package/dist/cjs/utils/order.d.ts +0 -225
  203. package/dist/cjs/utils/order.js +0 -400
  204. package/dist/cjs/utils/theme.d.ts +0 -2
  205. package/dist/cjs/utils/theme.js +0 -253
  206. package/dist/cjs/utils/themeCloud.d.ts +0 -8
  207. package/dist/cjs/utils/themeCloud.js +0 -217
  208. package/dist/esm/hooks/useBuilder.d.ts +0 -14
  209. package/dist/esm/hooks/useBuilder.js +0 -144
  210. package/dist/esm/types/api/alerts.d.ts +0 -5
  211. package/dist/esm/types/api/alerts.js +0 -1
  212. package/dist/esm/types/api/arrivals.d.ts +0 -14
  213. package/dist/esm/types/api/arrivals.js +0 -1
  214. package/dist/esm/types/api/cart.d.ts +0 -72
  215. package/dist/esm/types/api/cart.js +0 -1
  216. package/dist/esm/types/api/checkout.d.ts +0 -92
  217. package/dist/esm/types/api/checkout.js +0 -1
  218. package/dist/esm/types/api/customer.d.ts +0 -58
  219. package/dist/esm/types/api/customer.js +0 -1
  220. package/dist/esm/types/api/device.d.ts +0 -3
  221. package/dist/esm/types/api/device.js +0 -1
  222. package/dist/esm/types/api/devices.d.ts +0 -89
  223. package/dist/esm/types/api/devices.js +0 -1
  224. package/dist/esm/types/api/discounts.d.ts +0 -20
  225. package/dist/esm/types/api/discounts.js +0 -1
  226. package/dist/esm/types/api/employee.d.ts +0 -70
  227. package/dist/esm/types/api/employee.js +0 -1
  228. package/dist/esm/types/api/errorAlerts.d.ts +0 -9
  229. package/dist/esm/types/api/errorAlerts.js +0 -1
  230. package/dist/esm/types/api/favorite.d.ts +0 -69
  231. package/dist/esm/types/api/favorite.js +0 -1
  232. package/dist/esm/types/api/giftCard.d.ts +0 -11
  233. package/dist/esm/types/api/giftCard.js +0 -1
  234. package/dist/esm/types/api/index.d.ts +0 -26
  235. package/dist/esm/types/api/index.js +0 -26
  236. package/dist/esm/types/api/kiosk.d.ts +0 -33
  237. package/dist/esm/types/api/kiosk.js +0 -1
  238. package/dist/esm/types/api/menu.d.ts +0 -150
  239. package/dist/esm/types/api/menu.js +0 -1
  240. package/dist/esm/types/api/menuPages.d.ts +0 -21
  241. package/dist/esm/types/api/menuPages.js +0 -1
  242. package/dist/esm/types/api/messages.d.ts +0 -5
  243. package/dist/esm/types/api/messages.js +0 -1
  244. package/dist/esm/types/api/notifications.d.ts +0 -5
  245. package/dist/esm/types/api/notifications.js +0 -1
  246. package/dist/esm/types/api/offlineAuths.d.ts +0 -12
  247. package/dist/esm/types/api/offlineAuths.js +0 -1
  248. package/dist/esm/types/api/order.d.ts +0 -331
  249. package/dist/esm/types/api/order.js +0 -1
  250. package/dist/esm/types/api/refund.d.ts +0 -22
  251. package/dist/esm/types/api/refund.js +0 -1
  252. package/dist/esm/types/api/revenueCenter.d.ts +0 -55
  253. package/dist/esm/types/api/revenueCenter.js +0 -1
  254. package/dist/esm/types/api/settings.d.ts +0 -10
  255. package/dist/esm/types/api/settings.js +0 -1
  256. package/dist/esm/types/api/store.d.ts +0 -106
  257. package/dist/esm/types/api/store.js +0 -1
  258. package/dist/esm/types/api/surcharges.d.ts +0 -15
  259. package/dist/esm/types/api/surcharges.js +0 -1
  260. package/dist/esm/types/api/taxes.d.ts +0 -15
  261. package/dist/esm/types/api/taxes.js +0 -1
  262. package/dist/esm/types/api/themeCloud.d.ts +0 -354
  263. package/dist/esm/types/api/themeCloud.js +0 -1
  264. package/dist/esm/types/datetimes.d.ts +0 -37
  265. package/dist/esm/types/datetimes.js +0 -1
  266. package/dist/esm/types/global.d.ts +0 -39
  267. package/dist/esm/types/global.js +0 -1
  268. package/dist/esm/types/index.d.ts +0 -5
  269. package/dist/esm/types/index.js +0 -5
  270. package/dist/esm/types/request.d.ts +0 -14
  271. package/dist/esm/types/request.js +0 -1
  272. package/dist/esm/types/theme.d.ts +0 -117
  273. package/dist/esm/types/theme.js +0 -1
  274. package/dist/esm/utils/datetimes.d.ts +0 -32
  275. package/dist/esm/utils/datetimes.js +0 -124
  276. package/dist/esm/utils/helpers.d.ts +0 -36
  277. package/dist/esm/utils/helpers.js +0 -127
  278. package/dist/esm/utils/keypad.d.ts +0 -9
  279. package/dist/esm/utils/keypad.js +0 -98
  280. package/dist/esm/utils/order.d.ts +0 -225
  281. package/dist/esm/utils/order.js +0 -380
  282. package/dist/esm/utils/theme.d.ts +0 -2
  283. package/dist/esm/utils/theme.js +0 -250
  284. package/dist/esm/utils/themeCloud.d.ts +0 -8
  285. package/dist/esm/utils/themeCloud.js +0 -207
@@ -1,380 +0,0 @@
1
- import { __assign, __spreadArray } from "tslib";
2
- import { capitalize, convertStringToArray } from './helpers';
3
- export var orderTypeNamesMap = {
4
- OLO: 'Regular',
5
- CATERING: 'Catering',
6
- MERCH: 'Merch'
7
- };
8
- export var normalizeOrderType = function (orderType) {
9
- switch (orderType) {
10
- case 'MAIN_MENU':
11
- return 'OLO';
12
- case 'ECOMMERCE':
13
- return 'MERCH';
14
- default:
15
- return orderType;
16
- }
17
- };
18
- export var serviceTypeNamesMap = {
19
- WALKIN: 'Dine-In',
20
- PICKUP: 'Pickup',
21
- DELIVERY: 'Delivery',
22
- };
23
- export var tenderTypeNamesMap = {
24
- CASH: 'Cash',
25
- CREDIT: 'Credit',
26
- HOUSE_ACCOUNT: 'House Account',
27
- GIFT_CARD: 'Gift Card',
28
- COMP: 'Comp'
29
- };
30
- export var makeTenderTypeName = function (tenderType) {
31
- var name = tenderTypeNamesMap[tenderType];
32
- return name || capitalize(tenderType.replace('_', ' '));
33
- };
34
- export var makeChannelName = function (channel) {
35
- switch (channel.type) {
36
- case 'ONLINE':
37
- return 'Web';
38
- case 'APP':
39
- return 'App';
40
- case 'PORTAL':
41
- return channel.ext_name;
42
- default:
43
- return channel.type;
44
- }
45
- };
46
- export var calcCashBack = function (tenders) {
47
- if (!tenders || !tenders.length)
48
- return '0.00';
49
- return tenders
50
- .filter(function (i) { return i.tender_type === 'CASH'; })
51
- .reduce(function (t, i) { return (t += i.cash ? parseFloat(i.cash.cash_back) : 0.0); }, 0.0)
52
- .toFixed(2);
53
- };
54
- export var findCreditCardToken = function (tenders) {
55
- if (!tenders || !tenders.length)
56
- return null;
57
- var tender = tenders.find(function (i) { return i.tender_type === 'CREDIT'; });
58
- return tender && tender.credit_card ? tender.credit_card.token : null;
59
- };
60
- var makeCartItemGroups = function (optionGroups, isEdit, soldOut) {
61
- if (isEdit === void 0) { isEdit = false; }
62
- if (soldOut === void 0) { soldOut = []; }
63
- if (!optionGroups)
64
- return [];
65
- var groups = optionGroups.map(function (g) {
66
- var options = g.option_items.map(function (o) {
67
- var _a;
68
- var isSoldOut = soldOut.includes(o.id);
69
- var quantity = isSoldOut
70
- ? 0
71
- : o.opt_is_default && !isEdit
72
- ? o.min_quantity || 1
73
- : 0;
74
- var cals = ((_a = o.nutritional_info) === null || _a === void 0 ? void 0 : _a.calories)
75
- ? parseInt(o.nutritional_info.calories.toString())
76
- : null;
77
- var option = {
78
- id: o.id,
79
- name: o.name,
80
- shortName: o.short_name,
81
- color: o.color || null,
82
- description: o.description,
83
- imageUrl: o.small_image_url,
84
- allergens: convertStringToArray(o.allergens),
85
- tags: convertStringToArray(o.tags),
86
- ingredients: o.ingredients,
87
- nutritionalInfo: o.nutritional_info,
88
- cals: cals,
89
- price: parseFloat(o.price),
90
- quantity: quantity,
91
- isDefault: o.opt_is_default ? true : false,
92
- increment: o.increment,
93
- max: isSoldOut ? 0 : o.max_quantity,
94
- min: o.min_quantity,
95
- isSoldOut: isSoldOut,
96
- points: o.points || 0,
97
- totalPrice: 0.0,
98
- totalPoints: 0.0,
99
- totalCals: 0.0
100
- };
101
- return option;
102
- });
103
- var group = {
104
- id: g.id,
105
- name: g.name,
106
- description: g.description,
107
- imageUrl: g.small_image_url,
108
- included: g.included_options,
109
- max: g.max_options,
110
- min: g.min_options,
111
- isSize: !!g.is_size,
112
- options: options,
113
- quantity: options.reduce(function (t, o) { return (t += o.quantity); }, 0)
114
- };
115
- return group;
116
- });
117
- return groups;
118
- };
119
- export var calcPrices = function (item) {
120
- var groups = item.groups.map(function (g) {
121
- var groupQuantity = 0;
122
- var options = g.options.map(function (o) {
123
- var includedRemaining = Math.max(g.included - groupQuantity, 0);
124
- var priceQuantity = Math.max(o.quantity - includedRemaining, 0);
125
- var option = __assign(__assign({}, o), { totalPrice: priceQuantity * o.price, totalPoints: priceQuantity * o.points, totalCals: o.cals ? o.quantity * o.cals : 0 });
126
- groupQuantity += o.quantity || 0;
127
- return option;
128
- });
129
- return __assign(__assign({}, g), { quantity: groupQuantity, options: options });
130
- });
131
- var optionsPrice = groups.reduce(function (t, g) {
132
- return t + g.options.reduce(function (ot, o) { return ot + o.totalPrice; }, 0.0);
133
- }, 0.0);
134
- var totalPrice = item.quantity * (item.price + optionsPrice);
135
- var optionsPoints = groups.reduce(function (t, g) {
136
- return t + g.options.reduce(function (ot, o) { return ot + o.totalPoints; }, 0);
137
- }, 0.0);
138
- var totalPoints = item.points
139
- ? item.quantity * (item.points + optionsPoints)
140
- : null;
141
- var optionsCals = groups.reduce(function (t, g) {
142
- return t + g.options.reduce(function (ot, o) { return ot + o.totalCals; }, 0);
143
- }, 0.0);
144
- var totalCals = item.cals || item.cals === 0
145
- ? item.quantity * (item.cals + optionsCals)
146
- : null;
147
- return __assign(__assign({}, item), { groups: groups, totalPrice: totalPrice, totalPoints: totalPoints, totalCals: totalCals });
148
- };
149
- var nutritionKeys = [
150
- 'calories',
151
- 'cholesterol',
152
- 'dietary_fiber',
153
- 'protein',
154
- 'saturated_fat',
155
- 'sodium',
156
- 'sugars',
157
- 'total_carbs',
158
- 'total_fat',
159
- 'trans_fat'
160
- ];
161
- export var calcNutrition = function (item) {
162
- var nutritionalInfo = item.nutritionalInfo, groups = item.groups;
163
- if (!nutritionalInfo)
164
- return null;
165
- var nutrition = __assign({}, nutritionalInfo);
166
- var options = groups.reduce(function (arr, g) {
167
- return __spreadArray(__spreadArray([], arr, true), g.options.filter(function (o) { return o.quantity > 0; }), true);
168
- }, []);
169
- options.forEach(function (o) {
170
- nutritionKeys.forEach(function (key) {
171
- var _a;
172
- var optionVal = o.nutritionalInfo
173
- ? o.nutritionalInfo[key] || 0
174
- : 0;
175
- optionVal =
176
- typeof optionVal === 'string' ? parseInt(optionVal) : optionVal;
177
- var itemVal = nutrition[key] || 0;
178
- itemVal = typeof itemVal === 'string' ? parseInt(itemVal) : optionVal;
179
- nutrition = __assign(__assign({}, nutrition), (_a = {}, _a[key] = itemVal + optionVal, _a));
180
- });
181
- });
182
- return nutrition;
183
- };
184
- export var makeCartItem = function (item, isEdit, soldOut, simpleItem, hasPoints) {
185
- if (isEdit === void 0) { isEdit = false; }
186
- if (soldOut === void 0) { soldOut = []; }
187
- if (hasPoints === void 0) { hasPoints = false; }
188
- var groups = item.option_groups
189
- ? makeCartItemGroups(item.option_groups, isEdit, soldOut)
190
- : [];
191
- var nutritional_info = item.nutritional_info;
192
- var cals = (nutritional_info === null || nutritional_info === void 0 ? void 0 : nutritional_info.calories)
193
- ? parseInt(nutritional_info.calories.toString())
194
- : null;
195
- var nutritionalInfo = (nutritional_info === null || nutritional_info === void 0 ? void 0 : nutritional_info.calories) ? nutritional_info : null;
196
- var orderItem = {
197
- id: item.id,
198
- name: item.name,
199
- shortName: item.short_name,
200
- category: item.category_name,
201
- description: item.description,
202
- imageUrl: item.large_image_url,
203
- slug: item.slug,
204
- allergens: convertStringToArray(item.allergens),
205
- tags: convertStringToArray(item.tags),
206
- ingredients: item.ingredients,
207
- nutritionalInfo: nutritionalInfo,
208
- cals: cals,
209
- groups: groups,
210
- quantity: item.min_quantity || 1 * item.increment,
211
- price: parseFloat(item.price),
212
- increment: item.increment,
213
- max: item.max_quantity,
214
- min: item.min_quantity,
215
- points: hasPoints ? item.points || null : null,
216
- upsellItems: item.upsell_items || [],
217
- similarItems: item.similar_items || [],
218
- totalPrice: 0.0,
219
- totalPoints: 0.0,
220
- totalCals: 0.0
221
- };
222
- if (simpleItem) {
223
- var cart_guest_id = simpleItem.cart_guest_id, customer_id = simpleItem.customer_id, made_for = simpleItem.made_for, notes = simpleItem.notes;
224
- if (cart_guest_id)
225
- orderItem.cart_guest_id = cart_guest_id;
226
- if (customer_id)
227
- orderItem.customer_id = customer_id;
228
- if (made_for)
229
- orderItem.madeFor = made_for;
230
- if (notes)
231
- orderItem.notes = notes;
232
- }
233
- var pricedItem = calcPrices(orderItem);
234
- return pricedItem;
235
- };
236
- export var makeCartItemSignature = function (item, withNotes) {
237
- if (withNotes === void 0) { withNotes = true; }
238
- var optionIds = item.groups
239
- .reduce(function (arr, group) {
240
- var ids = group.options
241
- .filter(function (o) { return o.quantity > 0; })
242
- .reduce(function (optionsArr, o) {
243
- var optionArr = new Array(o.quantity);
244
- optionArr.fill(o.id);
245
- return __spreadArray(__spreadArray([], optionsArr, true), optionArr, true);
246
- }, []);
247
- return __spreadArray(__spreadArray([], arr, true), ids, true);
248
- }, [])
249
- .sort(function (a, b) { return a - b; });
250
- var itemIds = __spreadArray([item.id], optionIds, true).join('.');
251
- return withNotes ? "".concat(itemIds, ".").concat(item.madeFor, ".").concat(item.notes) : itemIds;
252
- };
253
- var makeGroupsLookup = function (item) {
254
- if (!item.groups)
255
- return {};
256
- return item.groups.reduce(function (grpObj, i) {
257
- var options = i.options.reduce(function (optObj, o) {
258
- optObj[o.id] = o;
259
- return optObj;
260
- }, {});
261
- grpObj[i.id] = __assign(__assign({}, i), { options: options });
262
- return grpObj;
263
- }, {});
264
- };
265
- export var rehydrateCartItem = function (menuItem, simpleCartItem) {
266
- var orderItem = makeCartItem(menuItem, true, [], simpleCartItem);
267
- orderItem.quantity = simpleCartItem.quantity || 1;
268
- if (simpleCartItem.groups && simpleCartItem.groups.length) {
269
- var groupsLookup_1 = makeGroupsLookup(simpleCartItem);
270
- orderItem.groups.forEach(function (group) {
271
- var simpleGroup = groupsLookup_1[group.id];
272
- if (simpleGroup) {
273
- group.options.forEach(function (option) {
274
- var simpleOption = simpleGroup.options[option.id];
275
- option.quantity = simpleOption ? simpleOption.quantity : 0;
276
- });
277
- }
278
- });
279
- }
280
- var pricedItem = calcPrices(orderItem);
281
- return pricedItem;
282
- };
283
- export var addItem = function (cart, item) {
284
- if (typeof item.index === 'undefined') {
285
- var itemSignature_1 = makeCartItemSignature(item);
286
- var itemSignatures = cart.map(function (i) { return (__assign({ signature: makeCartItemSignature(i) }, i)); });
287
- var match = itemSignatures.find(function (i) { return i.signature === itemSignature_1; });
288
- if (match && match.index) {
289
- var quantity = item.quantity + match.quantity;
290
- var newItem = __assign(__assign({}, item), { quantity: quantity });
291
- var updated = calcPrices(newItem);
292
- cart[match.index] = __assign(__assign({}, updated), { index: match.index });
293
- }
294
- else {
295
- cart.push(__assign(__assign({}, item), { index: cart.length }));
296
- }
297
- }
298
- else {
299
- cart[item.index] = item;
300
- }
301
- var cartCounts = calcCartCounts(cart);
302
- return { cart: cart, cartCounts: cartCounts };
303
- };
304
- var getItemRealIndex = function (cart, index) {
305
- return cart.findIndex(function (item) { return item.index === index; });
306
- };
307
- export var removeItem = function (cart, index) {
308
- var realIndex = getItemRealIndex(cart, index);
309
- if (realIndex > -1) {
310
- cart.splice(realIndex, 1);
311
- cart = cart.map(function (i, _index) { return (__assign(__assign({}, i), { index: _index })); });
312
- }
313
- var cartCounts = calcCartCounts(cart);
314
- return { cart: cart, cartCounts: cartCounts };
315
- };
316
- export var incrementItem = function (cart, index) {
317
- var realIndex = getItemRealIndex(cart, index);
318
- if (realIndex > -1) {
319
- var item = cart[realIndex];
320
- if (item.max === 0 || item.quantity < item.max) {
321
- var newQuantity = item.quantity + item.increment;
322
- newQuantity =
323
- item.max === 0 ? newQuantity : Math.min(item.max, newQuantity);
324
- var newItem = calcPrices(__assign(__assign({}, item), { quantity: newQuantity }));
325
- cart[realIndex] = newItem;
326
- }
327
- }
328
- var cartCounts = calcCartCounts(cart);
329
- return { cart: cart, cartCounts: cartCounts };
330
- };
331
- export var decrementItem = function (cart, index) {
332
- var realIndex = getItemRealIndex(cart, index);
333
- if (realIndex > -1) {
334
- var item = cart[realIndex];
335
- var newQuantity = Math.max(item.quantity - item.increment, 0);
336
- if (newQuantity === 0 || newQuantity < item.min) {
337
- cart.splice(realIndex, 1);
338
- cart = cart.map(function (i, _index) { return (__assign(__assign({}, i), { index: _index })); });
339
- }
340
- else {
341
- var newItem = calcPrices(__assign(__assign({}, item), { quantity: newQuantity }));
342
- cart[realIndex] = newItem;
343
- }
344
- }
345
- var cartCounts = calcCartCounts(cart);
346
- return { cart: cart, cartCounts: cartCounts };
347
- };
348
- export var makeSimpleCart = function (cart) {
349
- var simpleCart = cart.map(function (i) {
350
- var groups = i.groups.map(function (g) {
351
- var options = g.options
352
- .filter(function (o) { return o.quantity !== 0; })
353
- .map(function (o) { return ({ id: o.id, quantity: o.quantity }); });
354
- return { id: g.id, options: options };
355
- });
356
- return {
357
- id: i.id,
358
- quantity: i.quantity,
359
- groups: groups,
360
- made_for: i.madeFor || '',
361
- notes: i.notes || ''
362
- };
363
- });
364
- return simpleCart;
365
- };
366
- export var calcCartCounts = function (cart) {
367
- return cart.reduce(function (obj, item) {
368
- var _a;
369
- var newCount = (obj[item.id] || 0) + item.quantity;
370
- return __assign(__assign({}, obj), (_a = {}, _a[item.id] = newCount, _a));
371
- }, {});
372
- };
373
- export var getItemOptions = function (item) {
374
- if (!item.groups || !item.groups.length)
375
- return [];
376
- var options = item.groups
377
- .map(function (group) { return group.options.filter(function (option) { return option.quantity > 0; }); })
378
- .reduce(function (arr, i) { return __spreadArray(__spreadArray([], arr, true), i, true); }, []);
379
- return options;
380
- };
@@ -1,2 +0,0 @@
1
- import { Theme } from '@emotion/react';
2
- export declare const theme: Theme;
@@ -1,250 +0,0 @@
1
- import { isMobileOnly } from 'react-device-detect';
2
- var layoutOptions = {
3
- tablet: {
4
- padding: '25px',
5
- margin: '50px',
6
- headerHeight: '64px',
7
- footerHeight: '52px',
8
- asideWidth: '420px',
9
- sidebarWidth: '360px',
10
- cardWidth: '480px',
11
- bigButtonHeight: '80px',
12
- gutter: '5px'
13
- },
14
- mobile: {
15
- padding: '15px',
16
- margin: '30px',
17
- headerHeight: '56px',
18
- footerHeight: '32px',
19
- asideWidth: '320px',
20
- sidebarWidth: '280px',
21
- cardWidth: '360px',
22
- bigButtonHeight: '70px',
23
- gutter: '5px'
24
- }
25
- };
26
- var fontSizesOptions = {
27
- tablet: {
28
- xxxsmall: '8px',
29
- xxsmall: '10px',
30
- xsmall: '12px',
31
- small: '14px',
32
- medium: '16px',
33
- large: '20px',
34
- xlarge: '24px',
35
- xxlarge: '32px',
36
- xxxlarge: '48px'
37
- },
38
- mobile: {
39
- xxxsmall: '6px',
40
- xxsmall: '8px',
41
- xsmall: '10px',
42
- small: '12px',
43
- medium: '14px',
44
- large: '16px',
45
- xlarge: '20px',
46
- xxlarge: '26px',
47
- xxxlarge: '32px'
48
- }
49
- };
50
- var radiusOptions = {
51
- tablet: {
52
- small: '3px',
53
- medium: '6px',
54
- large: '9px'
55
- },
56
- mobile: {
57
- small: '2px',
58
- medium: '4px',
59
- large: '6px'
60
- }
61
- };
62
- var buttonSizeOptions = {
63
- tablet: {
64
- link: {
65
- fontSize: 'inherit',
66
- padding: '0',
67
- height: 'auto'
68
- },
69
- xsmall: {
70
- fontSize: '12px',
71
- padding: '6px',
72
- height: 'auto'
73
- },
74
- small: {
75
- fontSize: '14px',
76
- padding: '9px 18px',
77
- height: 'auto'
78
- },
79
- medium: {
80
- fontSize: '14px',
81
- padding: '13px 24px',
82
- height: 'auto'
83
- },
84
- large: {
85
- fontSize: '18px',
86
- padding: '18px 24px',
87
- height: 'auto'
88
- },
89
- xlarge: {
90
- fontSize: '20px',
91
- padding: '0 15px',
92
- height: '80px'
93
- },
94
- tall: {
95
- fontSize: '14px',
96
- padding: '0 15px',
97
- height: '60px'
98
- }
99
- },
100
- mobile: {
101
- link: {
102
- fontSize: 'inherit',
103
- padding: '0',
104
- height: 'auto'
105
- },
106
- xsmall: {
107
- fontSize: '10px',
108
- padding: '4px',
109
- height: 'auto'
110
- },
111
- small: {
112
- fontSize: '12px',
113
- padding: '6px 12px',
114
- height: 'auto'
115
- },
116
- medium: {
117
- fontSize: '14px',
118
- padding: '8px 16px',
119
- height: 'auto'
120
- },
121
- large: {
122
- fontSize: '16px',
123
- padding: '10px 20px',
124
- height: 'auto'
125
- },
126
- xlarge: {
127
- fontSize: '16px',
128
- padding: '0 12px',
129
- height: '64px'
130
- },
131
- tall: {
132
- fontSize: '12px',
133
- padding: '0 12px',
134
- height: '48px'
135
- }
136
- }
137
- };
138
- var deviceType = isMobileOnly ? 'mobile' : 'tablet';
139
- var layout = layoutOptions[deviceType];
140
- var fontSizes = fontSizesOptions[deviceType];
141
- var radius = radiusOptions[deviceType];
142
- var buttonSizes = buttonSizeOptions[deviceType];
143
- export var theme = {
144
- transition: 'all 0.15s ease',
145
- disabled: '0.25',
146
- arrowSize: '14px',
147
- overlay: 'rgba(0, 0, 0, 0.8)',
148
- strokeWidth: 1,
149
- breakpoints: {
150
- mobile: '768px'
151
- },
152
- layout: layout,
153
- fontSizes: fontSizes,
154
- radius: radius,
155
- fonts: {
156
- body: {
157
- fontFamily: "'Inter', sans-serif",
158
- fontWeight: '400',
159
- fontStyle: 'normal',
160
- lineHeight: '1.33333',
161
- letterSpacing: '0.01em'
162
- },
163
- headings: {
164
- fontFamily: "'Inter', sans-serif",
165
- fontWeight: '500',
166
- fontStyle: 'normal',
167
- lineHeight: '1.0',
168
- letterSpacing: '-0.013em'
169
- },
170
- mono: {
171
- fontFamily: "'Akkurat Mono', monospace;",
172
- fontWeight: '400',
173
- fontStyle: 'normal',
174
- lineHeight: '1.0',
175
- letterSpacing: '0.04em'
176
- }
177
- },
178
- colors: {
179
- text: {
180
- primary: '#fafafb', // headings
181
- secondary: '#a9b0b7', // body
182
- tertiary: '#5b6167' // secondary body
183
- },
184
- background: {
185
- primary: '#101114', // main
186
- secondary: '#17191c', // boxes
187
- tertiary: '#1c1e21' // modals
188
- },
189
- border: {
190
- primary: '#22252a', // subtle
191
- secondary: '#26282b', // less subtle
192
- tertiary: '#394047' // more pronounced
193
- },
194
- link: {
195
- primary: '#2bba3c', // green
196
- secondary: '#1da1f2', // blue
197
- tertiary: '#a9b0b7' // gray
198
- },
199
- error: {
200
- primary: '#eb2d5a', // red
201
- secondary: '#eb2d5a', // red - TODO: replace
202
- tertiary: '#430d15' // dark red
203
- },
204
- success: {
205
- primary: '#2bba3c', // green
206
- secondary: '#2bba3c', // green
207
- tertiary: '#2bba3c' // green
208
- },
209
- alert: {
210
- primary: '#f8e405', // yellow
211
- secondary: '#5a5aff',
212
- tertiary: '#5a5aff'
213
- }
214
- },
215
- buttons: {
216
- colors: {
217
- primary: {
218
- color: '#fafafb', // white
219
- bgColor: '#2bba3c', // green
220
- borderColor: '#2bba3c' // green
221
- },
222
- secondary: {
223
- color: '#fafafb', // white
224
- bgColor: '#26282b', // gray
225
- borderColor: '#26282b' // gray
226
- },
227
- black: {
228
- color: '#fafafb', // white
229
- bgColor: '#101114', // black
230
- borderColor: '#101114' // black
231
- },
232
- white: {
233
- color: '#101114', // black
234
- bgColor: '#fafafb', // white
235
- borderColor: '#fafafb' // white
236
- },
237
- error: {
238
- color: '#fafafb', // white
239
- bgColor: '#eb2d5a', // red
240
- borderColor: '#eb2d5a' // red
241
- },
242
- invisible: {
243
- color: '#a9b0b7', // gray (secondary text)
244
- bgColor: 'transparent',
245
- borderColor: 'transparent'
246
- }
247
- },
248
- sizes: buttonSizes
249
- }
250
- };
@@ -1,8 +0,0 @@
1
- import { HEX, Rems, ThemeCloud } from '../types';
2
- export declare const hexToRgbA: (hex: HEX, opacity: string) => string | null;
3
- export declare const remsToPixels: (rems: string, ratio: number) => string;
4
- export declare const remsToNumber: (rems: Rems) => number;
5
- export declare const makeRatio: (width: number, height: number) => number;
6
- export declare const makeWidthRatio: (width: number) => number;
7
- export declare const makeHeightRatio: (height: number) => number;
8
- export declare const decorateTheme: (theme: ThemeCloud, ratio: number) => ThemeCloud;