@delicity/client-cart 1.2.13 → 1.2.14

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 (54) hide show
  1. package/classes/Cart.d.ts +129 -0
  2. package/classes/Cart.d.ts.map +1 -0
  3. package/classes/Cart.js +482 -0
  4. package/classes/Cart.js.map +1 -0
  5. package/index.d.ts +4 -0
  6. package/index.d.ts.map +1 -0
  7. package/index.js +20 -0
  8. package/index.js.map +1 -0
  9. package/package.json +1 -1
  10. package/service/CartService.d.ts +14 -0
  11. package/service/CartService.d.ts.map +1 -0
  12. package/service/CartService.js +130 -0
  13. package/service/CartService.js.map +1 -0
  14. package/service/CategoryAvailabilityService.d.ts +23 -0
  15. package/service/CategoryAvailabilityService.d.ts.map +1 -0
  16. package/service/CategoryAvailabilityService.js +103 -0
  17. package/service/CategoryAvailabilityService.js.map +1 -0
  18. package/service/DeliveryService.d.ts +4 -0
  19. package/service/DeliveryService.d.ts.map +1 -0
  20. package/service/DeliveryService.js +30 -0
  21. package/service/DeliveryService.js.map +1 -0
  22. package/service/HelperService.d.ts +2 -0
  23. package/service/HelperService.d.ts.map +1 -0
  24. package/service/HelperService.js +14 -0
  25. package/service/HelperService.js.map +1 -0
  26. package/README.md +0 -1
  27. package/coverage/clover.xml +0 -71
  28. package/coverage/coverage-final.json +0 -3
  29. package/coverage/lcov-report/base.css +0 -224
  30. package/coverage/lcov-report/block-navigation.js +0 -87
  31. package/coverage/lcov-report/classes/Cart.ts.html +0 -340
  32. package/coverage/lcov-report/classes/index.html +0 -116
  33. package/coverage/lcov-report/favicon.png +0 -0
  34. package/coverage/lcov-report/index.html +0 -131
  35. package/coverage/lcov-report/prettify.css +0 -1
  36. package/coverage/lcov-report/prettify.js +0 -2
  37. package/coverage/lcov-report/service/CartService.ts.html +0 -238
  38. package/coverage/lcov-report/service/index.html +0 -116
  39. package/coverage/lcov-report/sort-arrow-sprite.png +0 -0
  40. package/coverage/lcov-report/sorter.js +0 -196
  41. package/coverage/lcov.info +0 -129
  42. package/jest.config.js +0 -8
  43. package/src/classes/Cart.ts +0 -563
  44. package/src/index.ts +0 -3
  45. package/src/service/CartService.ts +0 -139
  46. package/src/service/CategoryAvailabilityService.ts +0 -121
  47. package/src/service/DeliveryService.ts +0 -17
  48. package/src/service/HelperService.ts +0 -9
  49. package/src/test/availability.test.ts +0 -346
  50. package/src/test/class.test.ts +0 -497
  51. package/src/test/data/CartData.json +0 -244
  52. package/src/test/data/menu.json +0 -5875
  53. package/src/test/data/merchant.json +0 -186
  54. package/tsconfig.json +0 -24
@@ -0,0 +1,129 @@
1
+ import { IAddress, ICart, ICartDelivery, ICartDiscount, ICartItem, ICartModifierGroup, ICartPaymentMethod, ICartPrice, IClientConfig, Menu, MenuItem, Merchant, OrderModesEnum } from "@delicity/client-types";
2
+ export interface CartClass {
3
+ setMenu(menu: Menu): Cart;
4
+ setCart(cart: ICart): Cart;
5
+ setWhen(when: string | null): Cart;
6
+ setOrderMode(mode: OrderModesEnum): Cart;
7
+ setAddress(address: IAddress): Promise<Cart>;
8
+ setAddressComment(comment: string | null): Cart;
9
+ setCartComment(comment: string | null): Cart;
10
+ setAcceptCondition(acceptCondition: boolean): Cart;
11
+ setPaymentMethods(paymentMethod: ICartPaymentMethod[]): Cart;
12
+ pushError(field: string, code: string, vars: any): Cart;
13
+ setErrors(errors: {
14
+ field: string;
15
+ code: string;
16
+ vars: any;
17
+ }[]): Cart;
18
+ getCart(): ICart;
19
+ getItems(): ICartItem[];
20
+ getTotalItems(): number;
21
+ getTotalItemPrice(): number;
22
+ getMerchantId(): number;
23
+ getCartUUID(): string | undefined;
24
+ getOrderMode(): OrderModesEnum;
25
+ getCartComment(): string | null;
26
+ getDeliveryInfos(): ICartDelivery | undefined;
27
+ getPrices(): null | ICartPrice;
28
+ getWhen(): null | string;
29
+ getAcceptCondition(): boolean;
30
+ getPreparationDurationBetween(): number[] | null;
31
+ getPaymentMethods(): ICartPaymentMethod[];
32
+ getErrors(): {
33
+ field: string;
34
+ code: string;
35
+ vars: any;
36
+ }[];
37
+ getDiscounts(): ICartDiscount[];
38
+ getCoupons(): ICartDiscount[];
39
+ canBePayOnsite(): boolean;
40
+ getRemoteErrors(): any;
41
+ synchronize(): Promise<Cart>;
42
+ addToCart(item: MenuItem, modifierGroup: ICartModifierGroup[], quantity: number, comment?: string): Cart;
43
+ updateCart(cartItem: ICartItem, modifierGroup: ICartModifierGroup[], quantity: number, comment?: string): Cart;
44
+ removeFromCart(cartItem: ICartItem): Cart;
45
+ paymentMethodCard(type: 'card_token' | 'payment_method_id', token: string, brand: string, last4: string, expiration: string, amount?: number): Cart;
46
+ paymentMethodWallet(type: 'apple_pay' | 'google_pay', amount?: number): Cart;
47
+ paymentMethodOnsite(amount?: number): Cart;
48
+ validateCart(): Cart;
49
+ validateMerchantSchedule(): Cart;
50
+ validateCartIfError(): Cart;
51
+ resetErrors(): Cart;
52
+ cartIntegrity(): void;
53
+ }
54
+ export declare class Cart implements CartClass {
55
+ private cart;
56
+ private merchant;
57
+ private menu;
58
+ private config;
59
+ private acceptCondition;
60
+ private errors;
61
+ private listeners;
62
+ private isPriceLoading;
63
+ private isDeliveryLoading;
64
+ private merchantSchedule;
65
+ private remoteErrors;
66
+ constructor(config: IClientConfig, merchant: Merchant, menu: Menu, OrderMode: OrderModesEnum, when: string | null);
67
+ on(event: string, callback: any): void;
68
+ off(event: string, callback: any): void;
69
+ trigger(event: string, ...args: any): void;
70
+ setMenu(menu: Menu): Cart;
71
+ setCart(cart: ICart): Cart;
72
+ getPrices(): null | ICartPrice;
73
+ getAcceptCondition(): boolean;
74
+ setAcceptCondition(acceptCondition: boolean): Cart;
75
+ getPreparationDurationBetween(): number[] | null;
76
+ getIsDeliveryLoading(): boolean;
77
+ getIsPriceLoading(): boolean;
78
+ getRemoteErrors(): any;
79
+ setAddress(address: IAddress): Promise<Cart>;
80
+ getDeliveryInfos(): ICartDelivery | undefined;
81
+ setCartComment(comment: string | null): Cart;
82
+ getCartComment(): string | null;
83
+ updateCartProductPrices(): void;
84
+ setOrderMode(mode: OrderModesEnum): Cart;
85
+ setWhen(when: string | null): Cart;
86
+ setAddressComment(comment: string | null): Cart;
87
+ getMerchantId(): number;
88
+ getCartUUID(): string | undefined;
89
+ getOrderMode(): OrderModesEnum;
90
+ getWhen(): null | string;
91
+ getPaymentMethods(): ICartPaymentMethod[];
92
+ setPaymentMethods(paymentMethods: ICartPaymentMethod[]): Cart;
93
+ getPaymentMethodTotalAmount(): number;
94
+ paymentMethodCard(type: 'card_token' | 'payment_method_id', token: string, brand: string, last4: string, expiration: string, amount?: number): Cart;
95
+ paymentMethodWallet(type: 'apple_pay' | 'google_pay', amount?: number): Cart;
96
+ paymentMethodOnsite(amount?: number): Cart;
97
+ addToCart(item: MenuItem, modifierGroups: ICartModifierGroup[], quantity: number, comment?: string, replace?: ICartItem): Cart;
98
+ removeFromCart(cartItem: ICartItem): Cart;
99
+ updateCart(cartItem: ICartItem, modifierGroup: ICartModifierGroup[], quantity: number, comment?: string): Cart;
100
+ getCart(): ICart;
101
+ getItems(): ICartItem[];
102
+ getTotalItems(): number;
103
+ getTotalItemPrice(): number;
104
+ getTotalPrice(): number;
105
+ canBePayOnsite(): boolean;
106
+ synchronize(): Promise<Cart>;
107
+ validateMerchantSchedule(): Cart;
108
+ validateCart(): Cart;
109
+ validateCartIfError(): Cart;
110
+ resetErrors(): Cart;
111
+ getErrors(): {
112
+ field: string;
113
+ code: string;
114
+ vars: any;
115
+ }[];
116
+ pushError(field: string, code: string, vars: any): Cart;
117
+ setErrors(errors: {
118
+ field: string;
119
+ code: string;
120
+ vars: any;
121
+ }[]): Cart;
122
+ updatePaymentMethodAmount(): void;
123
+ addDiscountCoupon(code: string): Promise<Cart>;
124
+ getDiscounts(): ICartDiscount[];
125
+ getCoupons(): ICartDiscount[];
126
+ removeDiscount(discount: number): Promise<Cart>;
127
+ cartIntegrity(event?: boolean): void;
128
+ }
129
+ //# sourceMappingURL=Cart.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Cart.d.ts","sourceRoot":"","sources":["../../src/classes/Cart.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,482 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __importDefault = (this && this.__importDefault) || function (mod) {
12
+ return (mod && mod.__esModule) ? mod : { "default": mod };
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.Cart = void 0;
16
+ const client_types_1 = require("@delicity/client-types");
17
+ const luxon_1 = require("luxon");
18
+ const uuid_1 = require("uuid");
19
+ const CartService_1 = require("../service/CartService");
20
+ const DeliveryService_1 = require("../service/DeliveryService");
21
+ const HelperService_1 = require("../service/HelperService");
22
+ // @ts-ignore
23
+ const backend_schedule_management_1 = __importDefault(require("@delicity/backend-schedule-management"));
24
+ const CategoryAvailabilityService_1 = require("../service/CategoryAvailabilityService");
25
+ class Cart {
26
+ constructor(config, merchant, menu, OrderMode, when) {
27
+ this.acceptCondition = false;
28
+ this.errors = [];
29
+ this.listeners = {};
30
+ this.isPriceLoading = false;
31
+ this.isDeliveryLoading = false;
32
+ this.merchant = merchant;
33
+ this.menu = JSON.parse(JSON.stringify(menu));
34
+ this.config = config;
35
+ this.remoteErrors = {};
36
+ if (this.merchant.schedule) {
37
+ this.merchantSchedule = new backend_schedule_management_1.default(this.merchant.schedule.slots, this.merchant.schedule.closes, this.merchant.schedule.options);
38
+ }
39
+ this.cart = {
40
+ uuid: (0, uuid_1.v4)(),
41
+ createdAt: luxon_1.DateTime.now().toISO(),
42
+ merchantId: merchant.id,
43
+ preparationDurationBetween: null,
44
+ items: [],
45
+ totalItems: 0,
46
+ totalItemPrice: 0,
47
+ when: when,
48
+ comment: null,
49
+ type: OrderMode,
50
+ };
51
+ }
52
+ on(event, callback) {
53
+ if (!this.listeners[event]) {
54
+ this.listeners[event] = [];
55
+ }
56
+ this.listeners[event].push(callback);
57
+ }
58
+ off(event, callback) {
59
+ if (!this.listeners[event])
60
+ return;
61
+ this.listeners[event] = [];
62
+ }
63
+ trigger(event, ...args) {
64
+ if (this.listeners[event]) {
65
+ this.listeners[event].forEach((callback) => {
66
+ // @ts-ignore
67
+ callback(...args);
68
+ });
69
+ }
70
+ }
71
+ setMenu(menu) {
72
+ this.menu = JSON.parse(JSON.stringify(menu));
73
+ this.cartIntegrity();
74
+ this.updateCartProductPrices();
75
+ this.trigger('update-cart');
76
+ return this;
77
+ }
78
+ setCart(cart) {
79
+ this.cart = cart;
80
+ this.cartIntegrity();
81
+ this.trigger('update-cart');
82
+ return this;
83
+ }
84
+ getPrices() {
85
+ return this.cart.prices || null;
86
+ }
87
+ getAcceptCondition() {
88
+ return this.acceptCondition;
89
+ }
90
+ setAcceptCondition(acceptCondition) {
91
+ this.acceptCondition = acceptCondition;
92
+ return this;
93
+ }
94
+ getPreparationDurationBetween() {
95
+ return this.cart.preparationDurationBetween;
96
+ }
97
+ getIsDeliveryLoading() {
98
+ return this.isDeliveryLoading;
99
+ }
100
+ getIsPriceLoading() {
101
+ return this.isPriceLoading;
102
+ }
103
+ getRemoteErrors() {
104
+ return this.remoteErrors;
105
+ }
106
+ setAddress(address) {
107
+ return __awaiter(this, void 0, void 0, function* () {
108
+ if (this.cart.type !== client_types_1.OrderModesEnum.DELIVERY)
109
+ throw new Error('invalid_order_mode');
110
+ this.isDeliveryLoading = true;
111
+ const delivery = yield (0, DeliveryService_1.getDeliveryDetails)(this.config, this.merchant.id, address.position);
112
+ this.cart.delivery = Object.assign({ address }, delivery);
113
+ this.isDeliveryLoading = false;
114
+ this.trigger('update-cart');
115
+ return this;
116
+ });
117
+ }
118
+ getDeliveryInfos() {
119
+ return this.cart.delivery;
120
+ }
121
+ setCartComment(comment) {
122
+ this.cart.comment = comment;
123
+ return this;
124
+ }
125
+ getCartComment() {
126
+ return this.cart.comment;
127
+ }
128
+ updateCartProductPrices() {
129
+ for (let index in this.cart.items) {
130
+ const menuItem = this.menu.items.find(m => m.id === this.cart.items[index].item.id);
131
+ if (!menuItem)
132
+ this.cart.items.splice(parseInt(index), 1);
133
+ const modifierGroups = this.cart.items[index].modifierGroups;
134
+ const quantity = this.cart.items[index].quantity;
135
+ this.cart.items[index].item = menuItem;
136
+ this.cart.items[index].unitPrice = (0, CartService_1.getProductPrice)(menuItem, this.cart.type) + (0, CartService_1.getTotalModifiersUnitPrice)(modifierGroups);
137
+ this.cart.items[index].totalPrice = ((0, CartService_1.getProductPrice)(menuItem, this.cart.type) + (0, CartService_1.getTotalModifiersUnitPrice)(modifierGroups)) * quantity;
138
+ }
139
+ this.cart.totalItems = (0, CartService_1.getProductCount)(this.cart);
140
+ this.cart.totalItemPrice = (0, CartService_1.getProductPriceSum)(this.cart);
141
+ if (this.cart.paymentMethods && this.cart.paymentMethods.length > 0) {
142
+ this.updatePaymentMethodAmount();
143
+ }
144
+ this.validateCartIfError();
145
+ }
146
+ setOrderMode(mode) {
147
+ this.cart.type = mode;
148
+ if (!this.canBePayOnsite() && this.getPaymentMethods().some(e => e.type === 'cash')) {
149
+ this.cart.paymentMethods = [];
150
+ }
151
+ this.updateCartProductPrices();
152
+ this.trigger('update-cart');
153
+ return this;
154
+ }
155
+ setWhen(when) {
156
+ this.cart.when = when;
157
+ this.trigger('update-cart');
158
+ this.cartIntegrity(true);
159
+ this.validateCartIfError();
160
+ return this;
161
+ }
162
+ setAddressComment(comment) {
163
+ var _a;
164
+ if ((_a = this.cart.delivery) === null || _a === void 0 ? void 0 : _a.address) {
165
+ this.cart.delivery.address.additional_informations = comment;
166
+ }
167
+ return this;
168
+ }
169
+ getMerchantId() {
170
+ return this.merchant.id;
171
+ }
172
+ getCartUUID() {
173
+ return this.cart.uuid;
174
+ }
175
+ getOrderMode() {
176
+ return this.cart.type;
177
+ }
178
+ getWhen() {
179
+ return this.cart.when;
180
+ }
181
+ getPaymentMethods() {
182
+ return this.cart.paymentMethods || [];
183
+ }
184
+ setPaymentMethods(paymentMethods) {
185
+ this.cart.paymentMethods = paymentMethods;
186
+ return this;
187
+ }
188
+ getPaymentMethodTotalAmount() {
189
+ if (!this.cart.paymentMethods)
190
+ return 0;
191
+ return this.cart.paymentMethods.reduce((a, b) => a + b.amount, 0);
192
+ }
193
+ paymentMethodCard(type, token, brand, last4, expiration, amount) {
194
+ let leftToPay = this.getTotalPrice();
195
+ if (!this.cart.paymentMethods)
196
+ this.cart.paymentMethods = [];
197
+ if (this.cart.paymentMethods) {
198
+ const sum = this.getPaymentMethodTotalAmount();
199
+ if (sum === this.getTotalPrice())
200
+ this.cart.paymentMethods = [];
201
+ else
202
+ leftToPay -= sum;
203
+ }
204
+ if (amount && leftToPay < amount) {
205
+ this.cart.paymentMethods = [];
206
+ }
207
+ this.cart.paymentMethods.push({
208
+ type: 'card',
209
+ amount: amount ? amount : leftToPay,
210
+ card: { type, token, brand, last4, expiration }
211
+ });
212
+ return this;
213
+ }
214
+ paymentMethodWallet(type, amount) {
215
+ let leftToPay = this.getTotalPrice();
216
+ if (!this.cart.paymentMethods)
217
+ this.cart.paymentMethods = [];
218
+ if (this.cart.paymentMethods) {
219
+ const sum = this.getPaymentMethodTotalAmount();
220
+ if (sum === this.getTotalPrice())
221
+ this.cart.paymentMethods = [];
222
+ else
223
+ leftToPay -= sum;
224
+ }
225
+ if (amount && leftToPay < amount) {
226
+ this.cart.paymentMethods = [];
227
+ }
228
+ this.cart.paymentMethods.push({
229
+ type: "wallet",
230
+ wallet: { type },
231
+ amount: amount ? amount : leftToPay,
232
+ });
233
+ return this;
234
+ }
235
+ paymentMethodOnsite(amount) {
236
+ let leftToPay = this.getTotalPrice();
237
+ if (!this.cart.paymentMethods)
238
+ this.cart.paymentMethods = [];
239
+ if (this.cart.paymentMethods) {
240
+ const sum = this.getPaymentMethodTotalAmount();
241
+ if (sum === this.getTotalPrice())
242
+ this.cart.paymentMethods = [];
243
+ else
244
+ leftToPay -= sum;
245
+ }
246
+ if (amount && leftToPay < amount) {
247
+ this.cart.paymentMethods = [];
248
+ }
249
+ this.cart.paymentMethods.push({
250
+ type: 'cash',
251
+ amount: amount ? amount : leftToPay,
252
+ });
253
+ return this;
254
+ }
255
+ addToCart(item, modifierGroups, quantity, comment, replace) {
256
+ // Check if item have mandatory modifiers
257
+ if (!(0, CartService_1.mandatoryModifierCheck)(item, modifierGroups, this.menu)) {
258
+ throw new Error('mandatory_field_missing');
259
+ }
260
+ // Check if item is available
261
+ if (!(0, CartService_1.isItemAvailable)(item, this.menu)) {
262
+ throw new Error('item_not_available');
263
+ }
264
+ const index = (0, CartService_1.isItemAlreadyInCart)(item, modifierGroups, this.cart, comment);
265
+ if (index !== -1 && !replace) {
266
+ this.cart.items[index].quantity += quantity;
267
+ this.cart.items[index].totalPrice = ((0, CartService_1.getProductPrice)(item, this.cart.type) + (0, CartService_1.getTotalModifiersUnitPrice)(modifierGroups)) * this.cart.items[index].quantity;
268
+ }
269
+ else {
270
+ const cartItem = {
271
+ uuid: (0, uuid_1.v4)(),
272
+ item,
273
+ modifierGroups,
274
+ quantity,
275
+ comment: comment || null,
276
+ unitPrice: (0, CartService_1.getProductPrice)(item, this.cart.type) + (0, CartService_1.getTotalModifiersUnitPrice)(modifierGroups),
277
+ totalPrice: ((0, CartService_1.getProductPrice)(item, this.cart.type) + (0, CartService_1.getTotalModifiersUnitPrice)(modifierGroups)) * quantity
278
+ };
279
+ if (replace) {
280
+ const index = this.cart.items.findIndex(i => i.uuid === replace.uuid);
281
+ this.cart.items.splice(index, 1, cartItem);
282
+ }
283
+ else {
284
+ this.cart.items.push(cartItem);
285
+ }
286
+ }
287
+ this.cart.totalItems = (0, CartService_1.getProductCount)(this.cart);
288
+ this.cart.totalItemPrice = (0, CartService_1.getProductPriceSum)(this.cart);
289
+ if (this.cart.paymentMethods && this.cart.paymentMethods.length > 0) {
290
+ this.updatePaymentMethodAmount();
291
+ }
292
+ this.validateCartIfError();
293
+ this.cartIntegrity(true);
294
+ this.trigger('update-cart');
295
+ return this;
296
+ }
297
+ removeFromCart(cartItem) {
298
+ this.cart.items = this.cart.items.filter((item) => item.uuid !== cartItem.uuid);
299
+ this.cart.totalItems = (0, CartService_1.getProductCount)(this.cart);
300
+ this.cart.totalItemPrice = (0, CartService_1.getProductPriceSum)(this.cart);
301
+ if (this.cart.paymentMethods) {
302
+ this.updatePaymentMethodAmount();
303
+ }
304
+ this.cartIntegrity(true);
305
+ this.trigger('update-cart');
306
+ return this;
307
+ }
308
+ updateCart(cartItem, modifierGroup, quantity, comment) {
309
+ return this.addToCart(cartItem.item, modifierGroup, quantity, comment, cartItem);
310
+ }
311
+ getCart() {
312
+ return this.cart;
313
+ }
314
+ getItems() {
315
+ return this.cart.items;
316
+ }
317
+ getTotalItems() {
318
+ return this.cart.totalItems;
319
+ }
320
+ getTotalItemPrice() {
321
+ return this.cart.totalItemPrice;
322
+ }
323
+ getTotalPrice() {
324
+ var _a;
325
+ return ((_a = this.cart.prices) === null || _a === void 0 ? void 0 : _a.total) || this.cart.totalItemPrice;
326
+ }
327
+ canBePayOnsite() {
328
+ return [client_types_1.OrderModesEnum.PICKUP, client_types_1.OrderModesEnum.ON_SITE_COUNTER].includes(this.cart.type) && this.merchant.features.onsitePayment;
329
+ }
330
+ synchronize() {
331
+ var _a;
332
+ return __awaiter(this, void 0, void 0, function* () {
333
+ if (this.cart.type === client_types_1.OrderModesEnum.DELIVERY && !this.cart.delivery) {
334
+ throw new Error('no_delivery_address');
335
+ }
336
+ this.isPriceLoading = true;
337
+ const request = yield (0, CartService_1.synchronizeCart)(this.config, this.cart);
338
+ if (this.cart.delivery && request.delivery) {
339
+ this.cart.delivery = Object.assign({ address: (_a = this.cart.delivery) === null || _a === void 0 ? void 0 : _a.address }, request.delivery);
340
+ }
341
+ this.cart.preparationDurationBetween = request.preparationDurationBetween;
342
+ this.cart.discounts = request.discounts;
343
+ this.cart.prices = request.prices;
344
+ this.remoteErrors = request.errors;
345
+ if (this.cart.paymentMethods && this.cart.paymentMethods.length > 0) {
346
+ this.updatePaymentMethodAmount();
347
+ }
348
+ this.isPriceLoading = false;
349
+ return this;
350
+ });
351
+ }
352
+ validateMerchantSchedule() {
353
+ this.errors = this.errors.filter(e => e.field !== 'schedule');
354
+ if (this.merchantSchedule) {
355
+ const when = this.getWhen() !== null ? luxon_1.DateTime.fromISO(this.getWhen()) : luxon_1.DateTime.now();
356
+ if (!this.merchantSchedule.isOpenAt(when))
357
+ this.errors.push({ field: 'schedule', code: 'merchant_currently_close', vars: {} });
358
+ }
359
+ return this;
360
+ }
361
+ validateCart() {
362
+ var _a;
363
+ this.errors = [];
364
+ if (this.cart.type === client_types_1.OrderModesEnum.DELIVERY && !this.cart.delivery)
365
+ this.errors.push({ field: 'address', code: 'no_address_defined', vars: {} });
366
+ if (this.cart.type === client_types_1.OrderModesEnum.DELIVERY && this.cart.delivery && !this.cart.delivery.available)
367
+ this.errors.push({ field: 'address', code: 'address_not_available', vars: {} });
368
+ if (!this.cart.paymentMethods || ((_a = this.cart.paymentMethods) === null || _a === void 0 ? void 0 : _a.length) === 0)
369
+ this.errors.push({ field: 'payment_method', code: 'missing_payment_method', vars: {} });
370
+ if (!this.acceptCondition)
371
+ this.errors.push({ field: 'conditions', code: 'condition_not_accepted', vars: {} });
372
+ if (this.cart.type === client_types_1.OrderModesEnum.DELIVERY && this.merchant.settings.minDeliveryOrderPrice > this.cart.totalItemPrice)
373
+ this.errors.push({ field: 'prices', code: 'minium_delivery_product_price', vars: { min: (0, HelperService_1.formatPrice)(this.merchant.settings.minDeliveryOrderPrice) } });
374
+ this.validateMerchantSchedule();
375
+ return this;
376
+ }
377
+ validateCartIfError() {
378
+ if (this.errors.length > 0)
379
+ this.validateCart();
380
+ return this;
381
+ }
382
+ resetErrors() {
383
+ this.errors = [];
384
+ return this;
385
+ }
386
+ getErrors() {
387
+ return this.errors;
388
+ }
389
+ pushError(field, code, vars) {
390
+ this.errors.push({ field, code, vars });
391
+ return this;
392
+ }
393
+ setErrors(errors) {
394
+ this.errors = errors;
395
+ return this;
396
+ }
397
+ updatePaymentMethodAmount() {
398
+ var _a, _b, _c;
399
+ const totalPrice = this.getTotalPrice();
400
+ if (((_a = this.cart.paymentMethods) === null || _a === void 0 ? void 0 : _a.length) === 1) {
401
+ this.cart.paymentMethods[0].amount = totalPrice;
402
+ }
403
+ else if (((_b = this.cart.paymentMethods) === null || _b === void 0 ? void 0 : _b.length) === 2 && ((_c = this.cart.paymentMethods) === null || _c === void 0 ? void 0 : _c.some(p => p.type === 'meal-voucher'))) {
404
+ // if voucher, product price = voucher (max voucher limit)
405
+ // rest = payment method
406
+ }
407
+ else {
408
+ // If multiple payment methods, split amount
409
+ }
410
+ }
411
+ addDiscountCoupon(code) {
412
+ return __awaiter(this, void 0, void 0, function* () {
413
+ yield (0, CartService_1.addDiscountCode)(this.config, this.cart, code);
414
+ this.trigger('update-cart');
415
+ return this;
416
+ });
417
+ }
418
+ getDiscounts() {
419
+ var _a;
420
+ return (_a = this.cart.discounts) !== null && _a !== void 0 ? _a : [];
421
+ }
422
+ getCoupons() {
423
+ var _a, _b;
424
+ return (_b = (_a = this.cart.discounts) === null || _a === void 0 ? void 0 : _a.filter(d => d.type === 'coupon')) !== null && _b !== void 0 ? _b : [];
425
+ }
426
+ removeDiscount(discount) {
427
+ return __awaiter(this, void 0, void 0, function* () {
428
+ yield (0, CartService_1.removeDiscountCode)(this.config, this.cart, discount);
429
+ this.trigger('update-cart');
430
+ return this;
431
+ });
432
+ }
433
+ cartIntegrity(event = false) {
434
+ // Check if cart products are still available in menu
435
+ if (this.cart.items.length > 0) {
436
+ const merchantSchedule = new backend_schedule_management_1.default(this.merchant.schedule.slots, this.merchant.schedule.closes, this.merchant.schedule.options);
437
+ const toRemove = [];
438
+ for (const i in this.cart.items) {
439
+ // Remove from cart if item not in menu anymore
440
+ const menuItem = this.menu.items.find(m => m.id === this.cart.items[i].item.id);
441
+ const category = this.menu.categories.find(c => { var _a; return (_a = c.itemIds) === null || _a === void 0 ? void 0 : _a.includes(this.cart.items[i].item.uid); });
442
+ if (!menuItem) {
443
+ toRemove.push(this.cart.items[i]);
444
+ continue;
445
+ }
446
+ // Remove from cart if item not available
447
+ if (menuItem.unavailable) {
448
+ toRemove.push(this.cart.items[i]);
449
+ continue;
450
+ }
451
+ // Check if product is available
452
+ if (category === null || category === void 0 ? void 0 : category.availability) {
453
+ const atDate = this.cart.when ? luxon_1.DateTime.fromISO(this.cart.when) : luxon_1.DateTime.now();
454
+ // @ts-ignore
455
+ const categoryAvailability = (0, CategoryAvailabilityService_1.categoryAvailable)(category.availability, atDate, merchantSchedule);
456
+ if (!categoryAvailability.isAvailable) {
457
+ toRemove.push(this.cart.items[i]);
458
+ if (event) {
459
+ // Used when cart update check.
460
+ this.trigger('product-removed:not-available-at-date', this.cart.items[i]);
461
+ }
462
+ continue;
463
+ }
464
+ }
465
+ // Update from menu
466
+ this.cart.items[i].item = menuItem;
467
+ }
468
+ // Remove item from cart when necessary
469
+ toRemove.forEach((cartItem) => {
470
+ this.cart.items = this.cart.items.filter((item) => item.uuid !== cartItem.uuid);
471
+ });
472
+ // Update cart
473
+ this.cart.totalItems = (0, CartService_1.getProductCount)(this.cart);
474
+ this.cart.totalItemPrice = (0, CartService_1.getProductPriceSum)(this.cart);
475
+ if (this.cart.paymentMethods && this.cart.paymentMethods.length > 0) {
476
+ this.updatePaymentMethodAmount();
477
+ }
478
+ }
479
+ }
480
+ }
481
+ exports.Cart = Cart;
482
+ //# sourceMappingURL=Cart.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Cart.js","sourceRoot":"","sources":["../../src/classes/Cart.ts"],"names":[],"mappings":"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"}
package/index.d.ts ADDED
@@ -0,0 +1,4 @@
1
+ export * from './classes/Cart';
2
+ export * from './service/CartService';
3
+ export * from './service/CategoryAvailabilityService';
4
+ //# sourceMappingURL=index.d.ts.map
package/index.d.ts.map ADDED
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAA;AAC9B,cAAc,uBAAuB,CAAA;AACrC,cAAc,uCAAuC,CAAA"}