meemup-library 1.0.12 → 1.0.13

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 (251) hide show
  1. package/lib/controllers/ApiController.d.ts +19 -0
  2. package/lib/controllers/ApiController.js +92 -0
  3. package/lib/controllers/DashboardController.d.ts +20 -0
  4. package/lib/controllers/DashboardController.js +150 -0
  5. package/lib/controllers/DateTimeController.d.ts +20 -0
  6. package/lib/controllers/DateTimeController.js +301 -0
  7. package/lib/controllers/LogController.d.ts +14 -0
  8. package/lib/controllers/LogController.js +99 -0
  9. package/lib/controllers/LogScreenController.d.ts +10 -0
  10. package/lib/controllers/LogScreenController.js +63 -0
  11. package/lib/controllers/MoneyController.d.ts +10 -0
  12. package/lib/controllers/MoneyController.js +40 -0
  13. package/lib/controllers/OrderScreenController.d.ts +14 -0
  14. package/lib/controllers/OrderScreenController.js +67 -0
  15. package/lib/controllers/PhoneController.d.ts +6 -0
  16. package/lib/controllers/PhoneController.js +35 -0
  17. package/lib/controllers/PrintContentController.d.ts +25 -0
  18. package/lib/controllers/PrintContentController.js +510 -0
  19. package/lib/controllers/ProductModalController.d.ts +36 -0
  20. package/lib/controllers/ProductModalController.js +440 -0
  21. package/lib/controllers/ToolController.d.ts +6 -0
  22. package/lib/controllers/ToolController.js +22 -0
  23. package/lib/controllers/ZoneController.d.ts +13 -0
  24. package/lib/controllers/ZoneController.js +22 -0
  25. package/lib/enums/EnumBasketStep.d.ts +5 -0
  26. package/lib/enums/EnumBasketStep.js +6 -0
  27. package/lib/enums/EnumCategoryAvailableIn.d.ts +7 -0
  28. package/lib/enums/EnumCategoryAvailableIn.js +8 -0
  29. package/lib/enums/EnumChannels.d.ts +9 -0
  30. package/lib/enums/EnumChannels.js +10 -0
  31. package/lib/enums/EnumDashboardSort.d.ts +7 -0
  32. package/lib/enums/EnumDashboardSort.js +8 -0
  33. package/lib/enums/EnumDiscountType.d.ts +6 -0
  34. package/lib/enums/EnumDiscountType.js +7 -0
  35. package/lib/enums/EnumFeeCalculationMode.d.ts +7 -0
  36. package/lib/enums/EnumFeeCalculationMode.js +8 -0
  37. package/lib/enums/EnumFeeType.d.ts +5 -0
  38. package/lib/enums/EnumFeeType.js +6 -0
  39. package/lib/enums/EnumGender.d.ts +6 -0
  40. package/lib/enums/EnumGender.js +7 -0
  41. package/lib/enums/EnumLogType.d.ts +7 -0
  42. package/lib/enums/EnumLogType.js +8 -0
  43. package/lib/enums/EnumNewOrderWarning.d.ts +6 -0
  44. package/lib/enums/EnumNewOrderWarning.js +7 -0
  45. package/lib/enums/EnumOpenCashDrawer.d.ts +5 -0
  46. package/lib/enums/EnumOpenCashDrawer.js +6 -0
  47. package/lib/enums/EnumOrderScreenTab.d.ts +6 -0
  48. package/lib/enums/EnumOrderScreenTab.js +7 -0
  49. package/lib/enums/EnumOrderState.d.ts +12 -0
  50. package/lib/enums/EnumOrderState.js +13 -0
  51. package/lib/enums/EnumOrderType.d.ts +6 -0
  52. package/lib/enums/EnumOrderType.js +7 -0
  53. package/lib/enums/EnumPaymentState.d.ts +6 -0
  54. package/lib/enums/EnumPaymentState.js +7 -0
  55. package/lib/enums/EnumPaymentType.d.ts +12 -0
  56. package/lib/enums/EnumPaymentType.js +13 -0
  57. package/lib/enums/EnumPizzaSide.d.ts +7 -0
  58. package/lib/enums/EnumPizzaSide.js +8 -0
  59. package/lib/enums/EnumPriceMidpointRounding.d.ts +13 -0
  60. package/lib/enums/EnumPriceMidpointRounding.js +56 -0
  61. package/lib/enums/EnumPrintCommand.d.ts +6 -0
  62. package/lib/enums/EnumPrintCommand.js +7 -0
  63. package/lib/enums/EnumProductAvailableMode.d.ts +8 -0
  64. package/lib/enums/EnumProductAvailableMode.js +9 -0
  65. package/lib/enums/EnumShowOrderMode.d.ts +6 -0
  66. package/lib/enums/EnumShowOrderMode.js +7 -0
  67. package/lib/enums/EnumSortMode.d.ts +5 -0
  68. package/lib/enums/EnumSortMode.js +6 -0
  69. package/lib/enums/EnumTipType.d.ts +6 -0
  70. package/lib/enums/EnumTipType.js +7 -0
  71. package/lib/index.d.ts +102 -0
  72. package/lib/index.js +102 -0
  73. package/lib/interfaces/IAccount.d.ts +12 -0
  74. package/lib/interfaces/IAccount.js +10 -0
  75. package/lib/interfaces/IAction.d.ts +6 -0
  76. package/lib/interfaces/IAction.js +1 -0
  77. package/lib/interfaces/IAllergicStuffs.d.ts +7 -0
  78. package/lib/interfaces/IAllergicStuffs.js +1 -0
  79. package/lib/interfaces/IAnswer.d.ts +9 -0
  80. package/lib/interfaces/IAnswer.js +7 -0
  81. package/lib/interfaces/IApiAllOrder.d.ts +7 -0
  82. package/lib/interfaces/IApiAllOrder.js +4 -0
  83. package/lib/interfaces/IApiEstimatedTimeBody.d.ts +6 -0
  84. package/lib/interfaces/IApiEstimatedTimeBody.js +1 -0
  85. package/lib/interfaces/IApiPayOnTerminalBody.d.ts +7 -0
  86. package/lib/interfaces/IApiPayOnTerminalBody.js +5 -0
  87. package/lib/interfaces/IApiShop.d.ts +32 -0
  88. package/lib/interfaces/IApiShop.js +22 -0
  89. package/lib/interfaces/ICalculateFeeResult.d.ts +6 -0
  90. package/lib/interfaces/ICalculateFeeResult.js +1 -0
  91. package/lib/interfaces/ICard.d.ts +9 -0
  92. package/lib/interfaces/ICard.js +1 -0
  93. package/lib/interfaces/ICategory.d.ts +31 -0
  94. package/lib/interfaces/ICategory.js +28 -0
  95. package/lib/interfaces/ICheckoutOption.d.ts +39 -0
  96. package/lib/interfaces/ICheckoutOption.js +36 -0
  97. package/lib/interfaces/ICompanyFee.d.ts +21 -0
  98. package/lib/interfaces/ICompanyFee.js +1 -0
  99. package/lib/interfaces/ICompanyInvoiceDetail.d.ts +14 -0
  100. package/lib/interfaces/ICompanyInvoiceDetail.js +1 -0
  101. package/lib/interfaces/IConfigTodayReport.d.ts +11 -0
  102. package/lib/interfaces/IConfigTodayReport.js +9 -0
  103. package/lib/interfaces/ICustomer.d.ts +12 -0
  104. package/lib/interfaces/ICustomer.js +15 -0
  105. package/lib/interfaces/ICustomerAddress.d.ts +17 -0
  106. package/lib/interfaces/ICustomerAddress.js +1 -0
  107. package/lib/interfaces/IDailyReportOtherData.d.ts +16 -0
  108. package/lib/interfaces/IDailyReportOtherData.js +1 -0
  109. package/lib/interfaces/IDashboardScreenState.d.ts +6 -0
  110. package/lib/interfaces/IDashboardScreenState.js +7 -0
  111. package/lib/interfaces/IExtra.d.ts +29 -0
  112. package/lib/interfaces/IExtra.js +1 -0
  113. package/lib/interfaces/IExtraItem.d.ts +18 -0
  114. package/lib/interfaces/IExtraItem.js +16 -0
  115. package/lib/interfaces/IGeneralInformation.d.ts +33 -0
  116. package/lib/interfaces/IGeneralInformation.js +43 -0
  117. package/lib/interfaces/IGeneralItems.d.ts +36 -0
  118. package/lib/interfaces/IGeneralItems.js +34 -0
  119. package/lib/interfaces/IKitchenScreenSetting.d.ts +8 -0
  120. package/lib/interfaces/IKitchenScreenSetting.js +6 -0
  121. package/lib/interfaces/ILocalSetting.d.ts +18 -0
  122. package/lib/interfaces/ILocalSetting.js +16 -0
  123. package/lib/interfaces/ILocation.d.ts +6 -0
  124. package/lib/interfaces/ILocation.js +4 -0
  125. package/lib/interfaces/ILog.d.ts +11 -0
  126. package/lib/interfaces/ILog.js +9 -0
  127. package/lib/interfaces/ILogin.d.ts +5 -0
  128. package/lib/interfaces/ILogin.js +1 -0
  129. package/lib/interfaces/IOnlineOrderItem.d.ts +33 -0
  130. package/lib/interfaces/IOnlineOrderItem.js +1 -0
  131. package/lib/interfaces/IOrderDetailOrderItem.d.ts +6 -0
  132. package/lib/interfaces/IOrderDetailOrderItem.js +1 -0
  133. package/lib/interfaces/IOrderScreenState.d.ts +11 -0
  134. package/lib/interfaces/IOrderScreenState.js +9 -0
  135. package/lib/interfaces/IOrderState.d.ts +6 -0
  136. package/lib/interfaces/IOrderState.js +1 -0
  137. package/lib/interfaces/IOrderTypeModal.d.ts +19 -0
  138. package/lib/interfaces/IOrderTypeModal.js +1 -0
  139. package/lib/interfaces/IPaymentStatusChanged.d.ts +8 -0
  140. package/lib/interfaces/IPaymentStatusChanged.js +5 -0
  141. package/lib/interfaces/IPreviuosOrder.d.ts +30 -0
  142. package/lib/interfaces/IPreviuosOrder.js +1 -0
  143. package/lib/interfaces/IPrintTemplate.d.ts +54 -0
  144. package/lib/interfaces/IPrintTemplate.js +53 -0
  145. package/lib/interfaces/IPrinterAndPrintCount.d.ts +5 -0
  146. package/lib/interfaces/IPrinterAndPrintCount.js +1 -0
  147. package/lib/interfaces/IProduct.d.ts +47 -0
  148. package/lib/interfaces/IProduct.js +1 -0
  149. package/lib/interfaces/IProductExtra.d.ts +16 -0
  150. package/lib/interfaces/IProductExtra.js +1 -0
  151. package/lib/interfaces/IProductModalState.d.ts +14 -0
  152. package/lib/interfaces/IProductModalState.js +10 -0
  153. package/lib/interfaces/ISaveOrder.d.ts +74 -0
  154. package/lib/interfaces/ISaveOrder.js +1 -0
  155. package/lib/interfaces/ISearchAddressDetail.d.ts +11 -0
  156. package/lib/interfaces/ISearchAddressDetail.js +1 -0
  157. package/lib/interfaces/ISelectedExtraItem.d.ts +7 -0
  158. package/lib/interfaces/ISelectedExtraItem.js +6 -0
  159. package/lib/interfaces/ISelectedProductExtra.d.ts +7 -0
  160. package/lib/interfaces/ISelectedProductExtra.js +4 -0
  161. package/lib/interfaces/ISetting.d.ts +31 -0
  162. package/lib/interfaces/ISetting.js +31 -0
  163. package/lib/interfaces/ISignalOrderChanged.d.ts +5 -0
  164. package/lib/interfaces/ISignalOrderChanged.js +1 -0
  165. package/lib/interfaces/ISpecificPayment.d.ts +8 -0
  166. package/lib/interfaces/ISpecificPayment.js +6 -0
  167. package/lib/interfaces/IStarMicronicPrintTask.d.ts +11 -0
  168. package/lib/interfaces/IStarMicronicPrintTask.js +1 -0
  169. package/lib/interfaces/IStarMicronicPrinter.d.ts +7 -0
  170. package/lib/interfaces/IStarMicronicPrinter.js +1 -0
  171. package/lib/interfaces/IStorageControler.d.ts +6 -0
  172. package/lib/interfaces/IStorageControler.js +1 -0
  173. package/lib/interfaces/IStore.d.ts +54 -0
  174. package/lib/interfaces/IStore.js +1 -0
  175. package/lib/interfaces/ISystem.d.ts +64 -0
  176. package/lib/interfaces/ISystem.js +58 -0
  177. package/lib/interfaces/ITask.d.ts +8 -0
  178. package/lib/interfaces/ITask.js +6 -0
  179. package/lib/interfaces/ITextValue.d.ts +5 -0
  180. package/lib/interfaces/ITextValue.js +1 -0
  181. package/lib/interfaces/ITodayOrderCount.d.ts +5 -0
  182. package/lib/interfaces/ITodayOrderCount.js +1 -0
  183. package/lib/interfaces/IUdpPacket.d.ts +7 -0
  184. package/lib/interfaces/IUdpPacket.js +5 -0
  185. package/lib/interfaces/IWebMessage.d.ts +5 -0
  186. package/lib/interfaces/IWebMessage.js +1 -0
  187. package/lib/interfaces/IWorkScreen.d.ts +10 -0
  188. package/lib/interfaces/IWorkScreen.js +7 -0
  189. package/lib/interfaces/IZone.d.ts +13 -0
  190. package/lib/interfaces/IZone.js +1 -0
  191. package/lib/interfaces/IZoneCost.d.ts +6 -0
  192. package/lib/interfaces/IZoneCost.js +1 -0
  193. package/lib/interfaces/agent/IPrintOrder.d.ts +10 -0
  194. package/lib/interfaces/agent/IPrintOrder.js +0 -0
  195. package/lib/interfaces/database/IDExtra.d.ts +14 -0
  196. package/lib/interfaces/database/IDExtra.js +1 -0
  197. package/lib/interfaces/database/IDExtraItem.d.ts +17 -0
  198. package/lib/interfaces/database/IDExtraItem.js +1 -0
  199. package/lib/interfaces/database/IDProduct.d.ts +48 -0
  200. package/lib/interfaces/database/IDProduct.js +1 -0
  201. package/lib/interfaces/database/IDProductDefaultExtra.d.ts +6 -0
  202. package/lib/interfaces/database/IDProductDefaultExtra.js +1 -0
  203. package/lib/interfaces/database/IDProductDefaultExtraItem.d.ts +7 -0
  204. package/lib/interfaces/database/IDProductDefaultExtraItem.js +1 -0
  205. package/lib/interfaces/database/IDProductExtra.d.ts +12 -0
  206. package/lib/interfaces/database/IDProductExtra.js +10 -0
  207. package/lib/interfaces/order/IOrder.d.ts +75 -0
  208. package/lib/interfaces/order/IOrder.js +82 -0
  209. package/lib/interfaces/order/IOrderExtraItem.d.ts +14 -0
  210. package/lib/interfaces/order/IOrderExtraItem.js +1 -0
  211. package/lib/interfaces/order/IOrderItem.d.ts +22 -0
  212. package/lib/interfaces/order/IOrderItem.js +1 -0
  213. package/lib/interfaces/print/IModifiedDetails.d.ts +7 -0
  214. package/lib/interfaces/print/IModifiedDetails.js +1 -0
  215. package/lib/interfaces/print/IModifiedDetailsItem.d.ts +6 -0
  216. package/lib/interfaces/print/IModifiedDetailsItem.js +1 -0
  217. package/lib/interfaces/print/IOrderDetailCustomer.d.ts +16 -0
  218. package/lib/interfaces/print/IOrderDetailCustomer.js +14 -0
  219. package/lib/interfaces/print/IOrderDetailDriver.d.ts +4 -0
  220. package/lib/interfaces/print/IOrderDetailDriver.js +1 -0
  221. package/lib/interfaces/print/IOrderDetailOrder.d.ts +50 -0
  222. package/lib/interfaces/print/IOrderDetailOrder.js +49 -0
  223. package/lib/interfaces/print/IOrderDetailPaymentInfo.d.ts +7 -0
  224. package/lib/interfaces/print/IOrderDetailPaymentInfo.js +1 -0
  225. package/lib/interfaces/print/IOrderDetailProduct.d.ts +17 -0
  226. package/lib/interfaces/print/IOrderDetailProduct.js +1 -0
  227. package/lib/interfaces/print/IOrderDetailProductsExtra.d.ts +14 -0
  228. package/lib/interfaces/print/IOrderDetailProductsExtra.js +1 -0
  229. package/lib/interfaces/print/IOrderDetails.d.ts +22 -0
  230. package/lib/interfaces/print/IOrderDetails.js +15 -0
  231. package/lib/regx/CreditCardRegx.d.ts +2 -0
  232. package/lib/regx/CreditCardRegx.js +3 -0
  233. package/lib/regx/DomainRegx.d.ts +2 -0
  234. package/lib/regx/DomainRegx.js +2 -0
  235. package/lib/regx/EmailRegx.d.ts +2 -0
  236. package/lib/regx/EmailRegx.js +2 -0
  237. package/lib/regx/MoneyRegx.d.ts +2 -0
  238. package/lib/regx/MoneyRegx.js +2 -0
  239. package/lib/regx/PhoneRegx.d.ts +2 -0
  240. package/lib/regx/PhoneRegx.js +3 -0
  241. package/lib/regx/PostalCodeRegx.d.ts +2 -0
  242. package/lib/regx/PostalCodeRegx.js +2 -0
  243. package/lib/statics.d.ts +6 -0
  244. package/lib/statics.js +8 -0
  245. package/lib/types/IOrderPayStatus.d.ts +1 -0
  246. package/lib/types/IOrderPayStatus.js +1 -0
  247. package/lib/types/TAnswer.d.ts +2 -0
  248. package/lib/types/TAnswer.js +1 -0
  249. package/lib/types/TBaseExtra.d.ts +3 -0
  250. package/lib/types/TBaseExtra.js +1 -0
  251. package/package.json +3 -2
@@ -0,0 +1,440 @@
1
+ import EnumOrderType from "../enums/EnumOrderType";
2
+ import EnumSortMode from "../enums/EnumSortMode";
3
+ import EnumPizzaSide from "../enums/EnumPizzaSide";
4
+ import MoneyController from "./MoneyController";
5
+ export default new class ProductModalController {
6
+ constructor() {
7
+ this.singleSelectExtraItemPrice = (extra, base, item) => {
8
+ var _a, _b, _c;
9
+ let p = item.price;
10
+ if (extra.numberOfFreeItems > 0)
11
+ return 0;
12
+ if (base[1] && ((_a = base[1]) === null || _a === void 0 ? void 0 : _a.increasingOtherExtraItemsPrice)) {
13
+ // @ts-ignore
14
+ if (+((_b = base[0]) === null || _b === void 0 ? void 0 : _b.extraId) === +extra.id)
15
+ return item.price;
16
+ // @ts-ignore
17
+ const { increasingPriceType, increasingAmount, increasingPercentage } = (_c = base[0]) === null || _c === void 0 ? void 0 : _c.selected[0];
18
+ switch (increasingPriceType) {
19
+ case 1:
20
+ p += (item.price * increasingPercentage) / 100;
21
+ break;
22
+ case 2:
23
+ p += increasingAmount;
24
+ if (p < 0)
25
+ p = 0;
26
+ break;
27
+ default:
28
+ break;
29
+ }
30
+ }
31
+ return p;
32
+ };
33
+ this.multiSelectExtraPrice = (extra, base, item, selectedList = []) => {
34
+ var _a, _b, _c;
35
+ let _item = selectedList.find(i => i.id === item.id);
36
+ if (_item !== undefined) {
37
+ let p = +item.price;
38
+ if (base[1] && ((_a = base[1]) === null || _a === void 0 ? void 0 : _a.increasingOtherExtraItemsPrice)) {
39
+ // @ts-ignore
40
+ if (+((_b = base[0]) === null || _b === void 0 ? void 0 : _b.extraId) === +extra.id)
41
+ return p;
42
+ // @ts-ignore
43
+ const { increasingPriceType, increasingAmount, increasingPercentage } = (_c = base[0]) === null || _c === void 0 ? void 0 : _c.selected[0];
44
+ switch (increasingPriceType) {
45
+ case 1:
46
+ p += (item.price * increasingPercentage) / 100;
47
+ break;
48
+ case 2:
49
+ p += increasingAmount;
50
+ if (p < 0)
51
+ p = 0;
52
+ break;
53
+ default:
54
+ break;
55
+ }
56
+ }
57
+ if (extra.choosablePizzaToppingsSides) {
58
+ if (this.scaleSum(selectedList) <= extra.numberOfFreeItems)
59
+ return 0;
60
+ let index = selectedList.findIndex((element) => +element.id === +item.id);
61
+ if (index === -1)
62
+ return p;
63
+ let sliceArray = selectedList.slice(0, index + 1);
64
+ if (this.scaleSum(sliceArray) <= extra.numberOfFreeItems)
65
+ return 0;
66
+ }
67
+ p = (+p) * _item.quantity;
68
+ if (_item.pizzaSide === EnumPizzaSide.left || _item.pizzaSide === EnumPizzaSide.right)
69
+ return MoneyController.round(p / 2);
70
+ return p;
71
+ }
72
+ return 0;
73
+ };
74
+ this.extraItemsSortAction = (a, b) => {
75
+ if (a.priority == b.priority)
76
+ return 0;
77
+ else if (a.priority > b.priority)
78
+ return 1;
79
+ else
80
+ return -1;
81
+ };
82
+ }
83
+ getExtraSelectedItems(list, extraId) {
84
+ let item = list.find(i => +i.extraId === extraId);
85
+ if (item)
86
+ return item.selected;
87
+ return [];
88
+ }
89
+ canAddToBasket(product, selected, extras) {
90
+ let flag = true;
91
+ product.extras.forEach((item) => {
92
+ let extra = extras.find(i => i.id === item.extraId);
93
+ if (extra && extra.required && (item.secondExtraId === null || selected.find(i => i.extraId === item.secondExtraId))) {
94
+ if (item.secondExtraId === null ||
95
+ selected.find((i) => i.extraId === item.secondExtraId &&
96
+ i.selected.find((j) => j.id === item.secondExtraItemId))) {
97
+ if (selected.find((i) => i.extraId === item.extraId) === undefined) {
98
+ flag = false;
99
+ }
100
+ }
101
+ }
102
+ });
103
+ return flag;
104
+ }
105
+ productModalToBasketItem(product, selectedExtraList, extras, count, price, note) {
106
+ let list = this.sortByKey(selectedExtraList, "priority", product.chosenExtraItemsMode === EnumSortMode.BASED_ON_EXTRA_ITEMS_LIST)
107
+ .map((item) => {
108
+ if (product.chosenExtraItemsMode === EnumSortMode.BASED_ON_EXTRA_ITEMS_LIST)
109
+ item.selected = this.sortByKey(item.selected, "priority");
110
+ return item;
111
+ });
112
+ let extraItemList = [];
113
+ let itemIndex = 0;
114
+ list.forEach((extra) => {
115
+ extra.selected.forEach((extraItem) => {
116
+ var _a;
117
+ extraItemList.push({
118
+ id: itemIndex++,
119
+ extraId: extra.extraId,
120
+ extraItemId: extraItem.id,
121
+ totalAmount: extraItem.quantity * extraItem.price,
122
+ quantity: extraItem.quantity,
123
+ price: extraItem.price,
124
+ pizzaSide: extraItem.pizzaSide,
125
+ text: `${extraItem.quantity}x ${extraItem.title}`,
126
+ cartItemId: -1,
127
+ extraItemTitle: extraItem.title,
128
+ extraTitle: ((_a = extras.find(i => i.id === extra.extraId)) === null || _a === void 0 ? void 0 : _a.title) + ""
129
+ });
130
+ });
131
+ });
132
+ return {
133
+ id: -1,
134
+ productId: product.id,
135
+ title: this.productName(product),
136
+ imageUrl: this.productImage(product),
137
+ price: MoneyController.round(price),
138
+ extras: extraItemList,
139
+ quantity: count,
140
+ totalAmount: MoneyController.round(count * price),
141
+ note: note,
142
+ maxOrderQuantity: product.maxOrderQuantity,
143
+ minOrderQuantity: product.minOrderQuantity,
144
+ extrasNames: extraItemList.map(i => i.text).join(", "),
145
+ promotionId: -1,
146
+ promotionItem: false,
147
+ relatedItemId: null,
148
+ relatedProductId: null,
149
+ additionalText: "",
150
+ stampCardBonusItem: false
151
+ };
152
+ }
153
+ productName(product) {
154
+ return product.posName === "" ? product.name : product.posName;
155
+ }
156
+ productImage(product) {
157
+ return product.imageName === null ? "" : product.imageName;
158
+ }
159
+ productPrice(product, orderType) {
160
+ switch (orderType) {
161
+ case EnumOrderType.delivery:
162
+ return product.deliveryPrice;
163
+ case EnumOrderType.pickup:
164
+ return product.pickupPrice;
165
+ case EnumOrderType.dining:
166
+ return product.diningPrice;
167
+ default:
168
+ return 0;
169
+ }
170
+ }
171
+ baseItem(list, extraList) {
172
+ let idList = list.map(i => i.extraId);
173
+ let productExtraList = extraList.filter(i => idList.includes(i.id) && i.increasingOtherExtraItemsPrice);
174
+ if (productExtraList.length > 0)
175
+ return [list.find(i => { var _a; return i.extraId === ((_a = productExtraList[0]) === null || _a === void 0 ? void 0 : _a.id); }), productExtraList[0]];
176
+ return [undefined, undefined];
177
+ }
178
+ defaultExtraOfProductToSelectedExtras(product, extras) {
179
+ let list = [];
180
+ let productDefaultExtraModel = product.defaultExtraItems;
181
+ let productExtraModelList = product.extras;
182
+ productDefaultExtraModel.forEach((value) => {
183
+ let item = productExtraModelList.find(i => i.extraId === value.extraId);
184
+ if (item) {
185
+ let extraModel = extras.find(i => i.id === (item === null || item === void 0 ? void 0 : item.extraId));
186
+ let selectedList = [];
187
+ if (extraModel !== undefined) {
188
+ value.items.forEach(it => {
189
+ let extraItemModel = extraModel.items.find((i) => i.id === it.extraItemId);
190
+ if (extraItemModel !== undefined) {
191
+ selectedList.push({
192
+ priority: it.priority,
193
+ quantity: it.quantity,
194
+ pizzaSide: it.side,
195
+ id: it.extraItemId,
196
+ min: extraItemModel.min,
197
+ increasingPriceType: extraItemModel.increasingPriceType,
198
+ scale: extraItemModel.scale,
199
+ isDefaultSelected: extraItemModel.isDefaultSelected,
200
+ title: extraItemModel.title,
201
+ max: extraItemModel.max,
202
+ calories: extraItemModel.calories,
203
+ price: extraItemModel.price,
204
+ available: extraItemModel.available,
205
+ receiptTitle: extraItemModel.receiptTitle,
206
+ increasingAmount: extraItemModel.increasingAmount,
207
+ increasingPercentage: extraItemModel.increasingPercentage
208
+ });
209
+ }
210
+ });
211
+ }
212
+ let newItem = {
213
+ extraId: item.extraId,
214
+ selected: selectedList,
215
+ showTypeText: item.showTypeText,
216
+ secondExtraId: item.secondExtraId,
217
+ priority: item.priority,
218
+ showType: item.showType,
219
+ availableTypeText: item.availableTypeText,
220
+ secondExtraItemId: item.secondExtraItemId,
221
+ availableType: item.availableType
222
+ };
223
+ list.push(newItem);
224
+ }
225
+ });
226
+ return list;
227
+ }
228
+ defaultExtraOfProductToBasketItem(product, extras, orderType) {
229
+ let list = this.defaultExtraOfProductToSelectedExtras(product, extras);
230
+ let base = [undefined, undefined];
231
+ let count = product.minOrderQuantity;
232
+ let price = this.calculatePrice(orderType, product, list, base, extras);
233
+ return this.productModalToBasketItem(product, list, extras, count, price, "");
234
+ }
235
+ multiSelectExtraItemOptions(item, max, selectedList) {
236
+ let currentCount = this.quantitySum(selectedList.filter(i => i.id !== item.id));
237
+ let remind = max - currentCount;
238
+ let maxOption = remind < item.max ? remind : item.max;
239
+ let list = [];
240
+ for (let index = item.min; index <= maxOption; index++) {
241
+ list.push({
242
+ text: index + "X",
243
+ value: index
244
+ });
245
+ }
246
+ return list;
247
+ }
248
+ // pizzaSelectExtraPrice = (extra: IDExtra, base: TBaseExtra, item: IDExtraItem, selectedList: ISelectedExtraItem[] = []) => {
249
+ //
250
+ // let _item: ISelectedExtraItem | undefined = selectedList.find(i => i.id === item.id);
251
+ //
252
+ // if (_item !== undefined) {
253
+ //
254
+ // let p: number = +item.price;
255
+ //
256
+ // if (base[1] && base[1]?.increasingOtherExtraItemsPrice) {
257
+ // // @ts-ignore
258
+ // if (+base[0]?.extraId === +extra.id) return p;
259
+ //
260
+ // // @ts-ignore
261
+ // const { increasingPriceType, increasingAmount, increasingPercentage } = base[0]?.selected[0];
262
+ //
263
+ // switch (increasingPriceType) {
264
+ // case 1:
265
+ // p += (item.price * increasingPercentage) / 100;
266
+ // break;
267
+ // case 2:
268
+ // p += increasingAmount;
269
+ // if (p < 0) p = 0;
270
+ // break;
271
+ // default:
272
+ // break;
273
+ // }
274
+ // }
275
+ //
276
+ // if (extra.choosablePizzaToppingsSides) {
277
+ // if (this.scaleSum(selectedList) <= extra.numberOfFreeItems)
278
+ // return 0;
279
+ //
280
+ // let index = selectedList.findIndex((element) => +element.id === +item.id);
281
+ //
282
+ // if (index === -1)
283
+ // return p;
284
+ //
285
+ // let sliceArray = selectedList.slice(0, index + 1);
286
+ //
287
+ // if (this.scaleSum(sliceArray) <= extra.numberOfFreeItems)
288
+ // return 0;
289
+ //
290
+ // }
291
+ //
292
+ // return +p;
293
+ // }
294
+ // return 0;
295
+ // };
296
+ // scalePizzaSum(array: ISelectedExtraItem[] = []) {
297
+ // let s = 0;
298
+ // array.forEach((item) => {
299
+ // s += item["quantity"] * item["scale"];
300
+ // if (item.pizzaSide === EnumPizzaSide.right || item.pizzaSide === EnumPizzaSide.left)
301
+ // s = parseInt((s / 2) + "");
302
+ //
303
+ // });
304
+ // return s;
305
+ // }
306
+ scaleSum(array = []) {
307
+ let s = 0;
308
+ array.forEach((item) => {
309
+ let weight = item["quantity"] * item["scale"];
310
+ if (item.pizzaSide === EnumPizzaSide.right || item.pizzaSide === EnumPizzaSide.left)
311
+ weight = parseInt((weight / 2) + "");
312
+ s += weight;
313
+ });
314
+ return s;
315
+ }
316
+ calculatePrice(orderType, product, list, base, extraList) {
317
+ var _a, _b;
318
+ let p = 0;
319
+ for (let i = 0; i < list.length; i++) {
320
+ const { selected, extraId } = list[i];
321
+ let _extra = extraList.find(i => i.id === extraId);
322
+ let free = 0;
323
+ for (let j = 0; j < selected.length; j++) {
324
+ const { price, quantity, scale, pizzaSide } = selected[j];
325
+ let pep = 0;
326
+ for (let k = 0; k < quantity; k++) {
327
+ // @ts-ignore
328
+ if (free < (_extra === null || _extra === void 0 ? void 0 : _extra.numberOfFreeItems)) {
329
+ free += scale;
330
+ }
331
+ else {
332
+ let ep = 0;
333
+ switch (pizzaSide) {
334
+ case EnumPizzaSide.left:
335
+ //left
336
+ ep = price / 2;
337
+ break;
338
+ case EnumPizzaSide.right:
339
+ //right
340
+ ep = price / 2;
341
+ break;
342
+ case EnumPizzaSide.all:
343
+ //all
344
+ ep = price;
345
+ break;
346
+ default:
347
+ //unknown
348
+ ep = price;
349
+ break;
350
+ }
351
+ if (base[0] && +((_a = base[0]) === null || _a === void 0 ? void 0 : _a.extraId) !== +extraId) {
352
+ const { increasingPriceType, increasingAmount, increasingPercentage } = (_b = base[0]) === null || _b === void 0 ? void 0 : _b.selected[0];
353
+ switch (increasingPriceType) {
354
+ case 1:
355
+ ep += ep * (increasingPercentage / 100);
356
+ break;
357
+ case 2:
358
+ ep += increasingAmount;
359
+ if (ep < 0)
360
+ ep = 0;
361
+ break;
362
+ default:
363
+ break;
364
+ }
365
+ }
366
+ pep += ep;
367
+ }
368
+ }
369
+ p += MoneyController.round(pep);
370
+ // console.log(selected[j].title, " : ", pep, " ==> ", MoneyController.round(pep));
371
+ }
372
+ }
373
+ return MoneyController.round(p + this.productPrice(product, +orderType));
374
+ }
375
+ plusString(first, second) {
376
+ return `${first} ${second}`;
377
+ }
378
+ getValidateExtras(extras, extraSelected) {
379
+ let result = [];
380
+ extras.forEach(item => {
381
+ if (item.secondExtraId === null ||
382
+ (extraSelected.filter((i) => i.extraId === item.secondExtraId).length === 1 &&
383
+ extraSelected
384
+ .filter((i) => i.extraId === item.secondExtraId)[0]
385
+ .selected.filter((i) => i.id === item.secondExtraItemId).length === 1)) {
386
+ result.push(item);
387
+ }
388
+ });
389
+ return result;
390
+ }
391
+ getProductExtras(pExtras, sExtras, extras) {
392
+ let se = this.sortByKey(sExtras, "priority", true);
393
+ let pe = this.sortByKey(pExtras, "priority", true);
394
+ let itemsIdList = this.getValidateExtras(pe, se).map(i => i.extraId);
395
+ // let list: IDExtra[] = extras.filter(i => itemsIdList.includes(+i.id));
396
+ let result = [];
397
+ itemsIdList.forEach((id) => {
398
+ let ext = extras.find(i => i.id === id);
399
+ if (ext)
400
+ result.push(ext);
401
+ });
402
+ return result;
403
+ }
404
+ quantitySum(array = []) {
405
+ let s = 0;
406
+ array.forEach((item) => {
407
+ s += item.quantity;
408
+ });
409
+ return s;
410
+ }
411
+ // createSubtitle(items: ISelectedExtraItem[] = []): string {
412
+ // if (items.length === 1) {
413
+ // let { title, quantity } = items[0];
414
+ // return (quantity > 1 ? quantity + "x " : "") + title;
415
+ // } else if (items.length > 1) {
416
+ // return this.quantitySum(items) + " Item selected";
417
+ // } else {
418
+ // return "";
419
+ // }
420
+ // };
421
+ productMinAndMaxOptions(product) {
422
+ let list = [];
423
+ for (let index = product.minOrderQuantity; index <= product.maxOrderQuantity; index++) {
424
+ list.push({
425
+ text: index + "X",
426
+ value: index
427
+ });
428
+ }
429
+ return list;
430
+ }
431
+ sortByKey(array, key, conditionForSort = true) {
432
+ if (conditionForSort && Array.isArray(array))
433
+ return array.sort((a, b) => {
434
+ let x = a[key];
435
+ let y = b[key];
436
+ return ((x < y) ? -1 : ((x > y) ? 1 : 0));
437
+ });
438
+ return array;
439
+ }
440
+ }();
@@ -0,0 +1,6 @@
1
+ declare const _default: {
2
+ createOption(start: number, length: number, step?: number): number[];
3
+ convert_10_to_2(source: number): string;
4
+ find_number_to_2(source: number, value: number): boolean;
5
+ };
6
+ export default _default;
@@ -0,0 +1,22 @@
1
+ export default new class ToolController {
2
+ createOption(start, length, step = 1) {
3
+ let list = [];
4
+ for (let index = start; index < start + length; index += step)
5
+ list.push(index);
6
+ return list;
7
+ }
8
+ convert_10_to_2(source) {
9
+ let result = "";
10
+ if (source > 1)
11
+ result += this.convert_10_to_2(parseInt((source / 2) + ""));
12
+ result += parseInt((source % 2) + "") + "";
13
+ return result;
14
+ }
15
+ ;
16
+ find_number_to_2(source, value) {
17
+ let list = this.convert_10_to_2(source).split("").reverse(); //[1,0,0,1,0,1,0,1]
18
+ let result = list.findIndex((i, index) => i === "1" && Math.pow(2, index) === value);
19
+ // console.log(`source : ${source} \t value : ${value} \t result : ${result} \t mabna : ${list}`);
20
+ return result !== -1;
21
+ }
22
+ }();
@@ -0,0 +1,13 @@
1
+ import ILocation from "../interfaces/ILocation";
2
+ declare const _default: {
3
+ /**
4
+ * Performs the even-odd-rule Algorithm (a raycasting algorithm) to find out whether a point is in a given polygon.
5
+ * This runs in O(n) where n is the number of edges of the polygon.
6
+ *
7
+ * @param {Array} polygon an array representation of the polygon where polygon[i][0] is the x Value of the i-th point and polygon[i][1] is the y Value.
8
+ * @param {Array} point an array representation of the point where point[0] is its x Value and point[1] is its y Value
9
+ * @return {boolean} whether the point is in the polygon (not on the edge, just turn < into <= and > into >= for that)
10
+ */
11
+ pointInPolygon(polygon: ILocation[], point: ILocation): boolean;
12
+ };
13
+ export default _default;
@@ -0,0 +1,22 @@
1
+ export default new class ZoneController {
2
+ /**
3
+ * Performs the even-odd-rule Algorithm (a raycasting algorithm) to find out whether a point is in a given polygon.
4
+ * This runs in O(n) where n is the number of edges of the polygon.
5
+ *
6
+ * @param {Array} polygon an array representation of the polygon where polygon[i][0] is the x Value of the i-th point and polygon[i][1] is the y Value.
7
+ * @param {Array} point an array representation of the point where point[0] is its x Value and point[1] is its y Value
8
+ * @return {boolean} whether the point is in the polygon (not on the edge, just turn < into <= and > into >= for that)
9
+ */
10
+ pointInPolygon(polygon, point) {
11
+ let odd = false;
12
+ for (let i = 0, j = polygon.length - 1; i < polygon.length; i++) {
13
+ if ((((+polygon[i].longitude) > point.longitude) !== ((+polygon[j].longitude) > point.longitude))
14
+ && (point.latitude < (((+polygon[j].latitude) - (+polygon[i].latitude)) * (point.longitude - (+polygon[i].longitude)) / ((+polygon[j].longitude) - (+polygon[i].longitude)) + (+polygon[i].latitude)))) {
15
+ odd = !odd;
16
+ }
17
+ j = i;
18
+ }
19
+ return odd;
20
+ }
21
+ ;
22
+ }();
@@ -0,0 +1,5 @@
1
+ declare enum EnumBasketStep {
2
+ item = 0,
3
+ config = 1
4
+ }
5
+ export default EnumBasketStep;
@@ -0,0 +1,6 @@
1
+ var EnumBasketStep;
2
+ (function (EnumBasketStep) {
3
+ EnumBasketStep[EnumBasketStep["item"] = 0] = "item";
4
+ EnumBasketStep[EnumBasketStep["config"] = 1] = "config";
5
+ })(EnumBasketStep || (EnumBasketStep = {}));
6
+ export default EnumBasketStep;
@@ -0,0 +1,7 @@
1
+ declare enum EnumCategoryAvailableIn {
2
+ EVERY_WHERE = 1,
3
+ SHOP_APP_ONLY = 2,
4
+ POS_ONLY = 3,
5
+ GOOGLE_ORDERING = 4
6
+ }
7
+ export default EnumCategoryAvailableIn;
@@ -0,0 +1,8 @@
1
+ var EnumCategoryAvailableIn;
2
+ (function (EnumCategoryAvailableIn) {
3
+ EnumCategoryAvailableIn[EnumCategoryAvailableIn["EVERY_WHERE"] = 1] = "EVERY_WHERE";
4
+ EnumCategoryAvailableIn[EnumCategoryAvailableIn["SHOP_APP_ONLY"] = 2] = "SHOP_APP_ONLY";
5
+ EnumCategoryAvailableIn[EnumCategoryAvailableIn["POS_ONLY"] = 3] = "POS_ONLY";
6
+ EnumCategoryAvailableIn[EnumCategoryAvailableIn["GOOGLE_ORDERING"] = 4] = "GOOGLE_ORDERING";
7
+ })(EnumCategoryAvailableIn || (EnumCategoryAvailableIn = {}));
8
+ export default EnumCategoryAvailableIn;
@@ -0,0 +1,9 @@
1
+ declare enum EnumChannels {
2
+ None = 0,
3
+ WebShop = 1,
4
+ App = 2,
5
+ DigitalMenu = 4,
6
+ POS = 8,
7
+ GoogleOrdering = 16
8
+ }
9
+ export default EnumChannels;
@@ -0,0 +1,10 @@
1
+ var EnumChannels;
2
+ (function (EnumChannels) {
3
+ EnumChannels[EnumChannels["None"] = 0] = "None";
4
+ EnumChannels[EnumChannels["WebShop"] = 1] = "WebShop";
5
+ EnumChannels[EnumChannels["App"] = 2] = "App";
6
+ EnumChannels[EnumChannels["DigitalMenu"] = 4] = "DigitalMenu";
7
+ EnumChannels[EnumChannels["POS"] = 8] = "POS";
8
+ EnumChannels[EnumChannels["GoogleOrdering"] = 16] = "GoogleOrdering";
9
+ })(EnumChannels || (EnumChannels = {}));
10
+ export default EnumChannels;
@@ -0,0 +1,7 @@
1
+ declare enum EnumDashboardSort {
2
+ date = 0,
3
+ amount = 1,
4
+ discount = 2,
5
+ tip = 3
6
+ }
7
+ export default EnumDashboardSort;
@@ -0,0 +1,8 @@
1
+ var EnumDashboardSort;
2
+ (function (EnumDashboardSort) {
3
+ EnumDashboardSort[EnumDashboardSort["date"] = 0] = "date";
4
+ EnumDashboardSort[EnumDashboardSort["amount"] = 1] = "amount";
5
+ EnumDashboardSort[EnumDashboardSort["discount"] = 2] = "discount";
6
+ EnumDashboardSort[EnumDashboardSort["tip"] = 3] = "tip";
7
+ })(EnumDashboardSort || (EnumDashboardSort = {}));
8
+ export default EnumDashboardSort;
@@ -0,0 +1,6 @@
1
+ declare enum EnumDiscountType {
2
+ none = 0,
3
+ percent = 1,
4
+ amount = 2
5
+ }
6
+ export default EnumDiscountType;
@@ -0,0 +1,7 @@
1
+ var EnumDiscountType;
2
+ (function (EnumDiscountType) {
3
+ EnumDiscountType[EnumDiscountType["none"] = 0] = "none";
4
+ EnumDiscountType[EnumDiscountType["percent"] = 1] = "percent";
5
+ EnumDiscountType[EnumDiscountType["amount"] = 2] = "amount";
6
+ })(EnumDiscountType || (EnumDiscountType = {}));
7
+ export default EnumDiscountType;
@@ -0,0 +1,7 @@
1
+ declare enum EnumFeeCalculationMode {
2
+ NONE = 0,
3
+ FIXED = 1,
4
+ MIXED = 2,
5
+ BOTH = 3
6
+ }
7
+ export default EnumFeeCalculationMode;
@@ -0,0 +1,8 @@
1
+ var EnumFeeCalculationMode;
2
+ (function (EnumFeeCalculationMode) {
3
+ EnumFeeCalculationMode[EnumFeeCalculationMode["NONE"] = 0] = "NONE";
4
+ EnumFeeCalculationMode[EnumFeeCalculationMode["FIXED"] = 1] = "FIXED";
5
+ EnumFeeCalculationMode[EnumFeeCalculationMode["MIXED"] = 2] = "MIXED";
6
+ EnumFeeCalculationMode[EnumFeeCalculationMode["BOTH"] = 3] = "BOTH";
7
+ })(EnumFeeCalculationMode || (EnumFeeCalculationMode = {}));
8
+ export default EnumFeeCalculationMode;
@@ -0,0 +1,5 @@
1
+ declare enum EnumFeeType {
2
+ SERVICE = 1,
3
+ COMPANY = 2
4
+ }
5
+ export default EnumFeeType;
@@ -0,0 +1,6 @@
1
+ var EnumFeeType;
2
+ (function (EnumFeeType) {
3
+ EnumFeeType[EnumFeeType["SERVICE"] = 1] = "SERVICE";
4
+ EnumFeeType[EnumFeeType["COMPANY"] = 2] = "COMPANY";
5
+ })(EnumFeeType || (EnumFeeType = {}));
6
+ export default EnumFeeType;
@@ -0,0 +1,6 @@
1
+ declare enum EnumGender {
2
+ all = 0,
3
+ female = 1,
4
+ male = 2
5
+ }
6
+ export default EnumGender;
@@ -0,0 +1,7 @@
1
+ var EnumGender;
2
+ (function (EnumGender) {
3
+ EnumGender[EnumGender["all"] = 0] = "all";
4
+ EnumGender[EnumGender["female"] = 1] = "female";
5
+ EnumGender[EnumGender["male"] = 2] = "male";
6
+ })(EnumGender || (EnumGender = {}));
7
+ export default EnumGender;
@@ -0,0 +1,7 @@
1
+ declare enum EnumLogType {
2
+ all = 0,
3
+ info = 1,
4
+ error = 2,
5
+ description = 3
6
+ }
7
+ export default EnumLogType;
@@ -0,0 +1,8 @@
1
+ var EnumLogType;
2
+ (function (EnumLogType) {
3
+ EnumLogType[EnumLogType["all"] = 0] = "all";
4
+ EnumLogType[EnumLogType["info"] = 1] = "info";
5
+ EnumLogType[EnumLogType["error"] = 2] = "error";
6
+ EnumLogType[EnumLogType["description"] = 3] = "description";
7
+ })(EnumLogType || (EnumLogType = {}));
8
+ export default EnumLogType;