addio-ecomm-sdk 1.3.65 → 1.3.67

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 (108) hide show
  1. package/.vscode/settings.json +34 -34
  2. package/README.md +79 -79
  3. package/dist/index.d.ts +202 -202
  4. package/dist/index.js +1818 -1818
  5. package/dist/lib/constants/components/CreditCardInput.d.ts +11 -11
  6. package/dist/lib/constants/components/CreditCardInput.js +79 -79
  7. package/dist/lib/constants/components/Snackbar.d.ts +11 -11
  8. package/dist/lib/constants/components/Snackbar.js +39 -39
  9. package/dist/lib/constants/contexts/CartContext/CartContextProvider.d.ts +7 -7
  10. package/dist/lib/constants/contexts/CartContext/CartContextProvider.js +980 -977
  11. package/dist/lib/constants/contexts/CartContext/CartContextProvider.js.map +1 -1
  12. package/dist/lib/constants/contexts/CartContext/index.d.ts +79 -79
  13. package/dist/lib/constants/contexts/CartContext/index.js +127 -127
  14. package/dist/lib/constants/contexts/CartContext/index.js.map +1 -1
  15. package/dist/lib/constants/contexts/DataContext/DataContextProvider.d.ts +15 -15
  16. package/dist/lib/constants/contexts/DataContext/DataContextProvider.js +299 -299
  17. package/dist/lib/constants/contexts/DataContext/index.d.ts +42 -42
  18. package/dist/lib/constants/contexts/DataContext/index.js +66 -66
  19. package/dist/lib/constants/contexts/LogContext/LogContextProvider.d.ts +6 -6
  20. package/dist/lib/constants/contexts/LogContext/LogContextProvider.js +103 -103
  21. package/dist/lib/constants/contexts/LogContext/index.d.ts +7 -7
  22. package/dist/lib/constants/contexts/LogContext/index.js +45 -45
  23. package/dist/lib/constants/contexts/ModalContext/ModalContextProvider.d.ts +7 -7
  24. package/dist/lib/constants/contexts/ModalContext/ModalContextProvider.js +76 -76
  25. package/dist/lib/constants/contexts/ModalContext/index.d.ts +14 -14
  26. package/dist/lib/constants/contexts/ModalContext/index.js +18 -18
  27. package/dist/lib/constants/contexts/SDKContext/SDKProvider.d.ts +8 -8
  28. package/dist/lib/constants/contexts/SDKContext/SDKProvider.js +79 -79
  29. package/dist/lib/constants/contexts/SDKContext/index.d.ts +4 -4
  30. package/dist/lib/constants/contexts/SDKContext/index.js +4 -4
  31. package/dist/lib/constants/contexts/SnackbarContext/SnackbarContext.d.ts +4 -4
  32. package/dist/lib/constants/contexts/SnackbarContext/SnackbarContext.js +6 -6
  33. package/dist/lib/constants/contexts/SnackbarContext/SnackbarContextProvider.d.ts +12 -12
  34. package/dist/lib/constants/contexts/SnackbarContext/SnackbarContextProvider.js +49 -49
  35. package/dist/lib/constants/contexts/SnackbarContext/interfaces/ISnackbarContext.d.ts +17 -17
  36. package/dist/lib/constants/contexts/SnackbarContext/interfaces/ISnackbarContext.js +21 -21
  37. package/dist/lib/constants/contexts/StockNotifContext/StockNotifContextProvider.d.ts +7 -7
  38. package/dist/lib/constants/contexts/StockNotifContext/StockNotifContextProvider.js +179 -179
  39. package/dist/lib/constants/contexts/StockNotifContext/index.d.ts +10 -10
  40. package/dist/lib/constants/contexts/StockNotifContext/index.js +10 -10
  41. package/dist/lib/constants/contexts/UserContext/UserContextProvider.d.ts +5 -5
  42. package/dist/lib/constants/contexts/UserContext/UserContextProvider.js +470 -470
  43. package/dist/lib/constants/contexts/UserContext/index.d.ts +54 -54
  44. package/dist/lib/constants/contexts/UserContext/index.js +82 -82
  45. package/dist/lib/constants/contexts/WishlistContext/WishlistContextProvider.d.ts +6 -6
  46. package/dist/lib/constants/contexts/WishlistContext/WishlistContextProvider.js +327 -327
  47. package/dist/lib/constants/contexts/WishlistContext/index.d.ts +12 -12
  48. package/dist/lib/constants/contexts/WishlistContext/index.js +12 -12
  49. package/dist/lib/constants/hooks/useCart.d.ts +2 -2
  50. package/dist/lib/constants/hooks/useCart.js +11 -11
  51. package/dist/lib/constants/hooks/useData.d.ts +2 -2
  52. package/dist/lib/constants/hooks/useData.js +11 -11
  53. package/dist/lib/constants/hooks/useLogs.d.ts +2 -2
  54. package/dist/lib/constants/hooks/useLogs.js +11 -11
  55. package/dist/lib/constants/hooks/useModal.d.ts +2 -2
  56. package/dist/lib/constants/hooks/useModal.js +11 -11
  57. package/dist/lib/constants/hooks/useSDK.d.ts +2 -2
  58. package/dist/lib/constants/hooks/useSDK.js +11 -11
  59. package/dist/lib/constants/hooks/useSnackbar.d.ts +2 -2
  60. package/dist/lib/constants/hooks/useSnackbar.js +11 -11
  61. package/dist/lib/constants/hooks/useStockNotif.d.ts +2 -2
  62. package/dist/lib/constants/hooks/useStockNotif.js +11 -11
  63. package/dist/lib/constants/hooks/useUser.d.ts +2 -2
  64. package/dist/lib/constants/hooks/useUser.js +11 -11
  65. package/dist/lib/constants/hooks/useWishlist.d.ts +2 -2
  66. package/dist/lib/constants/hooks/useWishlist.js +11 -11
  67. package/dist/lib/models/image/index.d.ts +6 -6
  68. package/dist/lib/models/image/index.js +15 -15
  69. package/dist/lib/models/stockNotification/index.d.ts +13 -13
  70. package/dist/lib/models/stockNotification/index.js +130 -130
  71. package/dist/lib/models/wishlist/index.d.ts +14 -14
  72. package/dist/lib/models/wishlist/index.js +155 -155
  73. package/dist/utils/StripeErrors.d.ts +24 -24
  74. package/dist/utils/StripeErrors.js +55 -55
  75. package/dist/utils/algolia.d.ts +3 -3
  76. package/dist/utils/algolia.js +81 -81
  77. package/dist/utils/analytics.d.ts +71 -71
  78. package/dist/utils/analytics.js +257 -257
  79. package/dist/utils/cart.d.ts +3 -3
  80. package/dist/utils/cart.js +66 -66
  81. package/dist/utils/contentful.d.ts +10 -10
  82. package/dist/utils/contentful.js +136 -136
  83. package/dist/utils/functions.d.ts +21 -21
  84. package/dist/utils/functions.js +195 -195
  85. package/dist/utils/getSDK.d.ts +4 -4
  86. package/dist/utils/getSDK.js +77 -77
  87. package/dist/utils/initStoreData.d.ts +3 -3
  88. package/dist/utils/initStoreData.js +62 -62
  89. package/dist/utils/interfaces/IClientCMSData.d.ts +132 -132
  90. package/dist/utils/interfaces/IClientCMSData.js +2 -2
  91. package/dist/utils/interfaces/IEndpointResult.d.ts +10 -10
  92. package/dist/utils/interfaces/IEndpointResult.js +2 -2
  93. package/dist/utils/interfaces/IFacebookUserProfile.d.ts +10 -10
  94. package/dist/utils/interfaces/IFacebookUserProfile.js +2 -2
  95. package/dist/utils/interfaces/IFilter.d.ts +23 -23
  96. package/dist/utils/interfaces/IFilter.js +2 -2
  97. package/dist/utils/interfaces/IGoogleUserProfile.d.ts +7 -7
  98. package/dist/utils/interfaces/IGoogleUserProfile.js +2 -2
  99. package/dist/utils/interfaces/ISDKConfig.d.ts +7 -7
  100. package/dist/utils/interfaces/ISDKConfig.js +2 -2
  101. package/dist/utils/interfaces/ISpaceData.d.ts +14 -14
  102. package/dist/utils/interfaces/ISpaceData.js +2 -2
  103. package/dist/utils/larivieremeunier.d.ts +3 -3
  104. package/dist/utils/larivieremeunier.js +156 -156
  105. package/dist/utils/technosupply.d.ts +3 -3
  106. package/dist/utils/technosupply.js +155 -155
  107. package/package.json +61 -60
  108. package/publish.sh +132 -132
@@ -1,978 +1,981 @@
1
- "use strict";
2
- var __assign = (this && this.__assign) || function () {
3
- __assign = Object.assign || function(t) {
4
- for (var s, i = 1, n = arguments.length; i < n; i++) {
5
- s = arguments[i];
6
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
- t[p] = s[p];
8
- }
9
- return t;
10
- };
11
- return __assign.apply(this, arguments);
12
- };
13
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
14
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
15
- return new (P || (P = Promise))(function (resolve, reject) {
16
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
17
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
18
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
19
- step((generator = generator.apply(thisArg, _arguments || [])).next());
20
- });
21
- };
22
- var __generator = (this && this.__generator) || function (thisArg, body) {
23
- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
24
- return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
25
- function verb(n) { return function (v) { return step([n, v]); }; }
26
- function step(op) {
27
- if (f) throw new TypeError("Generator is already executing.");
28
- while (g && (g = 0, op[0] && (_ = 0)), _) try {
29
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
30
- if (y = 0, t) op = [op[0] & 2, t.value];
31
- switch (op[0]) {
32
- case 0: case 1: t = op; break;
33
- case 4: _.label++; return { value: op[1], done: false };
34
- case 5: _.label++; y = op[1]; op = [0]; continue;
35
- case 7: op = _.ops.pop(); _.trys.pop(); continue;
36
- default:
37
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
38
- if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
39
- if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
40
- if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
41
- if (t[2]) _.ops.pop();
42
- _.trys.pop(); continue;
43
- }
44
- op = body.call(thisArg, _);
45
- } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
46
- if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
47
- }
48
- };
49
- var __importDefault = (this && this.__importDefault) || function (mod) {
50
- return (mod && mod.__esModule) ? mod : { "default": mod };
51
- };
52
- Object.defineProperty(exports, "__esModule", { value: true });
53
- var jsx_runtime_1 = require("react/jsx-runtime");
54
- var react_1 = require("react");
55
- var Cart_1 = require("addio-admin-sdk/dist/Interfaces/Cart");
56
- var ISnackbarContext_1 = require("../SnackbarContext/interfaces/ISnackbarContext");
57
- var _1 = __importDefault(require("."));
58
- var useSnackbar_1 = __importDefault(require("../../hooks/useSnackbar"));
59
- var useSDK_1 = __importDefault(require("../../hooks/useSDK"));
60
- var useData_1 = __importDefault(require("../../hooks/useData"));
61
- var useUser_1 = __importDefault(require("../../hooks/useUser"));
62
- var functions_1 = require("../../../../utils/functions");
63
- var functions_2 = require("../../../../utils/functions");
64
- var cart_1 = require("addio-admin-sdk/dist/utils/cart");
65
- var discount_1 = require("addio-admin-sdk/dist/utils/discount");
66
- var g2_1 = require("addio-admin-sdk/dist/rules/GR/utils/g2");
67
- var CartContextProvider = function (_a) {
68
- var locale = _a.locale, children = _a.children;
69
- var sdk = (0, useSDK_1.default)();
70
- var currency = (0, useData_1.default)().currency;
71
- var _b = (0, useUser_1.default)(), isUserLoggedIn = _b.isUserLoggedIn, userLoaded = _b.loaded;
72
- var setSnackbar = (0, useSnackbar_1.default)().setSnackbar;
73
- var _c = (0, react_1.useState)(), cartData = _c[0], setCartData = _c[1];
74
- var _d = (0, react_1.useState)([]), cartErrors = _d[0], setCartErrors = _d[1];
75
- var _e = (0, react_1.useState)(false), loading = _e[0], setLoading = _e[1];
76
- var _f = (0, react_1.useState)(false), cartSliderOpen = _f[0], setCartSliderOpen = _f[1];
77
- var _g = (0, react_1.useState)(), isGuest = _g[0], setIsGuest = _g[1];
78
- var api = !!sdk ? sdk.getAPIInfos() : null;
79
- var initCart = function () { return __awaiter(void 0, void 0, void 0, function () {
80
- var cartIDInLocalStorage, newCart, _2;
81
- return __generator(this, function (_a) {
82
- switch (_a.label) {
83
- case 0:
84
- if (!!!api)
85
- return [2];
86
- cartIDInLocalStorage = localStorage.getItem("".concat(api.org, "__cart"));
87
- if (!!!cartIDInLocalStorage) return [3, 4];
88
- _a.label = 1;
89
- case 1:
90
- _a.trys.push([1, 3, , 4]);
91
- return [4, getCartFromDatabase(cartIDInLocalStorage)];
92
- case 2:
93
- newCart = _a.sent();
94
- if (!!newCart && !!!newCart.clerk_id) {
95
- if (newCart.status < Cart_1.CartStatusEnum.CHECKOUT_PAYMENT_SUCCESS) {
96
- return [2, newCart];
97
- }
98
- else {
99
- localStorage.removeItem("".concat(api.org, "__cart"));
100
- }
101
- }
102
- return [3, 4];
103
- case 3:
104
- _2 = _a.sent();
105
- return [2, undefined];
106
- case 4: return [2, undefined];
107
- }
108
- });
109
- }); };
110
- var updateEmail = function (newCart, email, saveToDatabase) {
111
- if (saveToDatabase === void 0) { saveToDatabase = true; }
112
- return __awaiter(void 0, void 0, void 0, function () {
113
- var cart;
114
- return __generator(this, function (_a) {
115
- switch (_a.label) {
116
- case 0:
117
- cart = !!newCart ? newCart : !!cartData ? cartData : (0, Cart_1.getDefaultCart)(Cart_1.CartTypeEnum.WEB);
118
- if (!!!saveToDatabase) return [3, 2];
119
- return [4, saveCart({ user_email: email })];
120
- case 1:
121
- cart = _a.sent();
122
- return [3, 3];
123
- case 2:
124
- if (!!cart) {
125
- cart = __assign(__assign({}, cart), { user_email: email });
126
- }
127
- _a.label = 3;
128
- case 3: return [2, cart];
129
- }
130
- });
131
- });
132
- };
133
- var updateDefaultCustomer = function (newCart, email, id, proInfo, saveToDatabase) {
134
- if (saveToDatabase === void 0) { saveToDatabase = true; }
135
- return __awaiter(void 0, void 0, void 0, function () {
136
- var cart, newCustomerInfo;
137
- return __generator(this, function (_a) {
138
- switch (_a.label) {
139
- case 0:
140
- cart = !!newCart ? newCart : !!cartData ? cartData : (0, Cart_1.getDefaultCart)(Cart_1.CartTypeEnum.WEB);
141
- newCustomerInfo = {
142
- customer_id: id,
143
- user_email: email,
144
- customer_info: __assign({ customer_default_email: email }, (proInfo || {}))
145
- };
146
- if (!!!saveToDatabase) return [3, 2];
147
- return [4, saveCart(newCustomerInfo)];
148
- case 1:
149
- _a.sent();
150
- return [3, 3];
151
- case 2:
152
- cart = __assign(__assign({}, (!!cart ? cart : (0, Cart_1.getDefaultCart)(Cart_1.CartTypeEnum.WEB))), newCustomerInfo);
153
- _a.label = 3;
154
- case 3: return [2, cart];
155
- }
156
- });
157
- });
158
- };
159
- var _handleInventoryError = function (shouldSave) { return __awaiter(void 0, void 0, void 0, function () {
160
- return __generator(this, function (_a) {
161
- switch (_a.label) {
162
- case 0:
163
- setSnackbar({
164
- title: (0, functions_1.getStringByLang)({
165
- en: 'This item is unavailable, or you haved reached the maximum amount you can add to your cart.',
166
- fr: 'Cet item est indisponible, ou vous avez atteint la quantité maximale déjà au panier.'
167
- }, locale),
168
- type: ISnackbarContext_1.SnackbarTypeEnum.ERROR,
169
- isShown: true,
170
- isCart: true
171
- });
172
- if (!!!shouldSave) return [3, 2];
173
- return [4, saveCart(undefined)];
174
- case 1:
175
- _a.sent();
176
- _a.label = 2;
177
- case 2: return [2];
178
- }
179
- });
180
- }); };
181
- var addItem = function (newCart, items, retro, useParentName, saveToDatabase, defaultAdd, isServiceUpsellOfSku, customPriceList) {
182
- if (retro === void 0) { retro = true; }
183
- if (useParentName === void 0) { useParentName = false; }
184
- if (saveToDatabase === void 0) { saveToDatabase = true; }
185
- if (defaultAdd === void 0) { defaultAdd = false; }
186
- if (isServiceUpsellOfSku === void 0) { isServiceUpsellOfSku = false; }
187
- return __awaiter(void 0, void 0, void 0, function () {
188
- var cart, addedValues, i, productName;
189
- return __generator(this, function (_a) {
190
- switch (_a.label) {
191
- case 0:
192
- if (!!!api || !!!sdk)
193
- throw new Error('SDK not initialised');
194
- cart = !!newCart ? newCart : !!cartData ? cartData : (0, Cart_1.getDefaultCart)(Cart_1.CartTypeEnum.WEB);
195
- if (!!isGuest && typeof isGuest === 'string' && !!cart.user_email) {
196
- cart = __assign(__assign({}, cart), { user_email: isGuest });
197
- }
198
- return [4, (0, cart_1.addCartItems)(cart, Array.isArray(items) ? items : [items], sdk.products.getOneInventoryItem, api.org !== 'gr', _handleInventoryError, defaultAdd, isServiceUpsellOfSku, customPriceList)];
199
- case 1:
200
- addedValues = _a.sent();
201
- cart = addedValues.cartData;
202
- if (!!!saveToDatabase) return [3, 3];
203
- return [4, saveCart(cart)];
204
- case 2:
205
- cart = _a.sent();
206
- _a.label = 3;
207
- case 3:
208
- if (!!retro && !!items && (Array.isArray(items) ? !!items.length : true)) {
209
- i = Array.isArray(items) ? items[0] : items;
210
- productName = useParentName ? i.parent_name : i.name;
211
- if (!!addedValues.updated) {
212
- setSnackbar({
213
- title: (0, functions_1.getStringByLang)({
214
- en: "".concat(!!productName ? (0, functions_1.translate)(locale || 'en', productName) : 'The item', " has been successfuly updated in your cart!"),
215
- fr: "".concat(!!productName ? (0, functions_1.translate)(locale || 'fr', productName) : "L'item", " a bien \u00E9t\u00E9 mis \u00E0 jour dans votre panier!")
216
- }, locale),
217
- type: ISnackbarContext_1.SnackbarTypeEnum.SUCCESS,
218
- isShown: true,
219
- isCart: true
220
- });
221
- }
222
- else if (!!addedValues.added) {
223
- setSnackbar({
224
- title: (0, functions_1.getStringByLang)({
225
- en: "".concat(!!productName ? (0, functions_1.translate)(locale || 'en', productName) : 'The item', " has been successfuly added to your cart!"),
226
- fr: "".concat(!!productName ? (0, functions_1.translate)(locale || 'fr', productName) : "L'item", " a bien \u00E9t\u00E9 ajout\u00E9 \u00E0 votre panier!")
227
- }, locale),
228
- type: ISnackbarContext_1.SnackbarTypeEnum.SUCCESS,
229
- isShown: true,
230
- isCart: true
231
- });
232
- }
233
- if (!!!addedValues.maxQtyItems) {
234
- setCartSliderOpen(true);
235
- }
236
- }
237
- return [2, cart];
238
- }
239
- });
240
- });
241
- };
242
- var updateItem = function (newCart, items, saveToDatabase) {
243
- if (saveToDatabase === void 0) { saveToDatabase = true; }
244
- return __awaiter(void 0, void 0, void 0, function () {
245
- var updatedItemsCart, itemsToUpdate, updatedValues;
246
- return __generator(this, function (_a) {
247
- switch (_a.label) {
248
- case 0:
249
- if (!!!api || !!!sdk)
250
- throw new Error('SDK not initialised');
251
- updatedItemsCart = !!newCart ? newCart : !!cartData ? cartData : (0, Cart_1.getDefaultCart)(Cart_1.CartTypeEnum.WEB);
252
- itemsToUpdate = Array.isArray(items) ? items : [items];
253
- return [4, (0, cart_1.updateCartItems)(updatedItemsCart, itemsToUpdate, sdk.products.getOneInventoryItem, api.org !== 'gr', _handleInventoryError)];
254
- case 1:
255
- updatedValues = _a.sent();
256
- if (!!!saveToDatabase) return [3, 3];
257
- return [4, saveCart({ items: updatedValues.updatedCart.items })];
258
- case 2:
259
- updatedItemsCart = _a.sent();
260
- _a.label = 3;
261
- case 3: return [2, updatedItemsCart];
262
- }
263
- });
264
- });
265
- };
266
- var deleteItem = function (newCart, sku, saveToDatabase, onlyIfUpsellOf) {
267
- if (saveToDatabase === void 0) { saveToDatabase = true; }
268
- return __awaiter(void 0, void 0, void 0, function () {
269
- var cart;
270
- return __generator(this, function (_a) {
271
- switch (_a.label) {
272
- case 0:
273
- cart = !!newCart ? newCart : !!cartData ? cartData : (0, Cart_1.getDefaultCart)(Cart_1.CartTypeEnum.WEB);
274
- cart = (0, cart_1.deleteCartItem)(cart, Array.isArray(sku) ? sku : [sku], onlyIfUpsellOf);
275
- if (!!!saveToDatabase) return [3, 2];
276
- return [4, saveCart({ items: cart.items })];
277
- case 1:
278
- cart = _a.sent();
279
- _a.label = 2;
280
- case 2: return [2, cart];
281
- }
282
- });
283
- });
284
- };
285
- var verifyCart = function () { return __awaiter(void 0, void 0, void 0, function () {
286
- var request, responseData, response, error_1;
287
- return __generator(this, function (_a) {
288
- switch (_a.label) {
289
- case 0:
290
- if (!!!api || !!!cartData)
291
- return [2, false];
292
- if (cartData.status >= Cart_1.CartStatusEnum.CHECKOUT_PAYMENT_SUCCESS)
293
- throw new Error("Can't process a paid or higher status cart.");
294
- if (!!!cartData.id) return [3, 5];
295
- _a.label = 1;
296
- case 1:
297
- _a.trys.push([1, 4, , 5]);
298
- return [4, fetch("".concat(api.api, "/cart/").concat(cartData.id, "/verify"), {
299
- method: 'GET',
300
- headers: {
301
- Authorization: "Bearer ".concat(api.token),
302
- 'Content-Type': 'application/json',
303
- 'x-gng-ecomm-token': api.userToken
304
- }
305
- })];
306
- case 2:
307
- request = _a.sent();
308
- return [4, request.json()];
309
- case 3:
310
- responseData = (_a.sent());
311
- if (responseData.status != 200) {
312
- throw 'Erreur lors de la requête des quotes.' + responseData.error;
313
- }
314
- response = responseData.data;
315
- setCartData(response.cart);
316
- return [2, response.actionsDone];
317
- case 4:
318
- error_1 = _a.sent();
319
- console.log('error in verifyCart: ', error_1);
320
- return [3, 5];
321
- case 5: return [2, false];
322
- }
323
- });
324
- }); };
325
- var uploadFileToOrder = function (newCart, file, propsName, saveToDatabase) {
326
- if (saveToDatabase === void 0) { saveToDatabase = true; }
327
- return __awaiter(void 0, void 0, void 0, function () {
328
- var cart, base64, request, responseData;
329
- var _a, _b, _c, _d;
330
- return __generator(this, function (_e) {
331
- switch (_e.label) {
332
- case 0:
333
- if (!!!api)
334
- return [2];
335
- cart = !!newCart ? newCart : !!cartData ? cartData : (0, Cart_1.getDefaultCart)(Cart_1.CartTypeEnum.WEB);
336
- if (!!!cart.id)
337
- return [2, {
338
- cart: cart,
339
- data: undefined,
340
- error: "Couldn't convert cart data"
341
- }];
342
- if (cart.status >= Cart_1.CartStatusEnum.CHECKOUT_PAYMENT_SUCCESS)
343
- throw new Error("Can't process a paid or higher status cart.");
344
- return [4, (0, functions_2.toBase64)(file)];
345
- case 1:
346
- base64 = _e.sent();
347
- if (typeof base64 !== 'string') {
348
- return [2, {
349
- cart: cart,
350
- data: undefined,
351
- error: "Couldn't convert file to base64"
352
- }];
353
- }
354
- return [4, fetch("".concat(api.api, "/cart/").concat(cart.id, "/uploadBase64"), {
355
- method: 'PUT',
356
- headers: {
357
- Authorization: "Bearer ".concat(api.token),
358
- 'Content-Type': 'application/json',
359
- 'x-gng-ecomm-token': api.userToken
360
- },
361
- body: JSON.stringify({
362
- base64: base64
363
- })
364
- })];
365
- case 2:
366
- request = _e.sent();
367
- return [4, request.json()];
368
- case 3:
369
- responseData = (_e.sent());
370
- if (responseData.status != 200) {
371
- throw new Error("Impossible d'uploader le fichier" + responseData.error);
372
- }
373
- if (!!!responseData.data) return [3, 6];
374
- if (!!!saveToDatabase) return [3, 5];
375
- return [4, saveCart({
376
- shipping_payload: cart.shipping_payload
377
- ? __assign(__assign({}, cart.shipping_payload), (_a = {}, _a[propsName] = responseData.data, _a)) : (_b = {},
378
- _b[propsName] = responseData.data,
379
- _b)
380
- })];
381
- case 4:
382
- cart = _e.sent();
383
- return [3, 6];
384
- case 5:
385
- cart = __assign(__assign({}, cart), { shipping_payload: cart.shipping_payload
386
- ? __assign(__assign({}, cart.shipping_payload), (_c = {}, _c[propsName] = responseData.data, _c)) : (_d = {},
387
- _d[propsName] = responseData.data,
388
- _d) });
389
- _e.label = 6;
390
- case 6: return [2, { cart: cart, data: responseData.data, error: undefined }];
391
- }
392
- });
393
- });
394
- };
395
- var emptyCart = function (removeCartIDFromLocalStorage) {
396
- if (removeCartIDFromLocalStorage === void 0) { removeCartIDFromLocalStorage = true; }
397
- return __awaiter(void 0, void 0, void 0, function () {
398
- var cartID, cartFromDB, err_1;
399
- return __generator(this, function (_a) {
400
- switch (_a.label) {
401
- case 0:
402
- if (!!!api || !!!sdk)
403
- return [2, false];
404
- if (!!!removeCartIDFromLocalStorage) return [3, 1];
405
- if (process.env.NODE_ENV !== 'production')
406
- console.log('`${api.org}__cart`', "".concat(api.org, "__cart"));
407
- localStorage.removeItem("".concat(api.org, "__cart"));
408
- setCartData(undefined);
409
- return [3, 5];
410
- case 1:
411
- cartID = localStorage.getItem("".concat(api.org, "__cart"));
412
- if (!!!cartID) return [3, 5];
413
- _a.label = 2;
414
- case 2:
415
- _a.trys.push([2, 4, , 5]);
416
- return [4, getCartFromDatabase(cartID)];
417
- case 3:
418
- cartFromDB = _a.sent();
419
- if (!!cartFromDB && !!!cartFromDB.clerk_id) {
420
- setCartData(cartFromDB);
421
- }
422
- return [3, 5];
423
- case 4:
424
- err_1 = _a.sent();
425
- return [3, 5];
426
- case 5: return [2, true];
427
- }
428
- });
429
- });
430
- };
431
- var handlePayment = function (data) {
432
- if (data === void 0) { data = {}; }
433
- return __awaiter(void 0, void 0, void 0, function () {
434
- var request, responseData;
435
- return __generator(this, function (_a) {
436
- switch (_a.label) {
437
- case 0:
438
- if (!!!api || !!!sdk)
439
- return [2, { error: { en: 'SDK not initialized', fr: 'SDK non initialisé' } }];
440
- if (!!!cartData)
441
- throw new Error("Can't pay an empty/undefined cart");
442
- if (cartData.status >= Cart_1.CartStatusEnum.CHECKOUT_PAYMENT_SUCCESS)
443
- throw new Error("Can't process a paid or higher status cart.");
444
- return [4, fetch("".concat(api.api, "/cart/").concat(cartData.id, "/payment"), {
445
- method: 'POST',
446
- headers: {
447
- Authorization: "Bearer ".concat(api.token),
448
- 'Content-Type': 'application/json',
449
- 'x-gng-ecomm-token': api.userToken
450
- },
451
- body: JSON.stringify(__assign({ customer_email: cartData.user_email, customer_name: cartData.billing_address ? cartData.billing_address.expedition_recipient_name : 'Anonyme', cartTotal: Number((cartData.total * 100).toFixed(0)) }, data))
452
- })];
453
- case 1:
454
- request = _a.sent();
455
- return [4, request.json()];
456
- case 2:
457
- responseData = _a.sent();
458
- if (responseData.status != 200) {
459
- return [2, { error: responseData.error }];
460
- }
461
- if (!!responseData.token) {
462
- sdk.setUserToken(responseData.token);
463
- }
464
- return [2, { accessToken: responseData.data }];
465
- }
466
- });
467
- });
468
- };
469
- var setPaidBy = function (paidByValue, customPriceList) { return __awaiter(void 0, void 0, void 0, function () {
470
- var partial, customIncentiveInfo, e_1;
471
- return __generator(this, function (_a) {
472
- switch (_a.label) {
473
- case 0:
474
- if (!!!cartData)
475
- return [2];
476
- partial = { paid_by: paidByValue, id: cartData.id };
477
- if (!!customPriceList) {
478
- customIncentiveInfo = (0, g2_1.getCustomIncentiveInfo)(customPriceList, cartData.discount_rules);
479
- if (!!customIncentiveInfo) {
480
- partial = __assign(__assign({}, partial), { discount_rules: customIncentiveInfo.updatedDiscountRules });
481
- }
482
- }
483
- _a.label = 1;
484
- case 1:
485
- _a.trys.push([1, 3, , 4]);
486
- return [4, saveCart(partial, false, undefined, false, true)];
487
- case 2:
488
- _a.sent();
489
- return [3, 4];
490
- case 3:
491
- e_1 = _a.sent();
492
- console.log('error on saving cart with paid_by value: ', e_1);
493
- return [3, 4];
494
- case 4: return [2];
495
- }
496
- });
497
- }); };
498
- var saveOrder = function (payment_payload) { return __awaiter(void 0, void 0, void 0, function () {
499
- var fetchData, response, err_2;
500
- return __generator(this, function (_a) {
501
- switch (_a.label) {
502
- case 0:
503
- if (!!!api)
504
- throw new Error('SDK not initialised');
505
- if (!!!cartData)
506
- throw new Error("Can't pay an empty/undefined cart");
507
- if (cartData.status >= Cart_1.CartStatusEnum.CHECKOUT_PAYMENT_SUCCESS)
508
- throw new Error("Can't process a paid or higher status cart.");
509
- _a.label = 1;
510
- case 1:
511
- _a.trys.push([1, 4, , 5]);
512
- return [4, fetch("".concat(api.api, "/cart/").concat(cartData.id, "/saveOrder"), {
513
- method: 'POST',
514
- headers: {
515
- authorization: "Bearer ".concat(api.token),
516
- 'Content-Type': 'application/json',
517
- 'x-gng-ecomm-token': api.userToken
518
- },
519
- body: JSON.stringify({ payment_payload: payment_payload })
520
- })];
521
- case 2:
522
- fetchData = _a.sent();
523
- return [4, fetchData.json()];
524
- case 3:
525
- response = (_a.sent());
526
- if (response.status !== 200) {
527
- return [2, 'error'];
528
- }
529
- return [2, response.data];
530
- case 4:
531
- err_2 = _a.sent();
532
- return [2, 'error'];
533
- case 5: return [2];
534
- }
535
- });
536
- }); };
537
- var removeDiscountRule = function (cart, code) { return __awaiter(void 0, void 0, void 0, function () {
538
- var e_2;
539
- return __generator(this, function (_a) {
540
- switch (_a.label) {
541
- case 0:
542
- _a.trys.push([0, 2, , 3]);
543
- return [4, saveCart({
544
- subtotalWithoutPromotions: null,
545
- cart_promo_applied: null,
546
- cart_promos_applied: !!cart.cart_promos_applied
547
- ? cart.cart_promos_applied.filter(function (x) { return x.promo_code !== code; })
548
- : null
549
- })];
550
- case 1:
551
- _a.sent();
552
- return [2, true];
553
- case 2:
554
- e_2 = _a.sent();
555
- console.log('error on removing discountRule: ', e_2.toString());
556
- return [2, false];
557
- case 3: return [2];
558
- }
559
- });
560
- }); };
561
- var updateBillingAddress = function (newCart, expeditionInfo, saveToDatabase, setCAIfNoCountry) {
562
- if (saveToDatabase === void 0) { saveToDatabase = true; }
563
- return __awaiter(void 0, void 0, void 0, function () {
564
- var cart, newExpeditionInfo;
565
- return __generator(this, function (_a) {
566
- switch (_a.label) {
567
- case 0:
568
- cart = !!newCart ? newCart : !!cartData ? cartData : (0, Cart_1.getDefaultCart)(Cart_1.CartTypeEnum.WEB);
569
- newExpeditionInfo = expeditionInfo;
570
- if (!!setCAIfNoCountry && !!expeditionInfo && !!!expeditionInfo.address.country) {
571
- newExpeditionInfo = __assign(__assign({}, expeditionInfo), { address: __assign(__assign({}, expeditionInfo.address), { country: 'CA' }) });
572
- }
573
- if (!!!saveToDatabase) return [3, 2];
574
- return [4, saveCart({ billing_address: newExpeditionInfo })];
575
- case 1:
576
- cart = _a.sent();
577
- return [3, 3];
578
- case 2:
579
- cart = __assign(__assign({}, cart), { billing_address: newExpeditionInfo });
580
- _a.label = 3;
581
- case 3: return [2, cart];
582
- }
583
- });
584
- });
585
- };
586
- var updateShippingAddress = function (newCart, isPickupAtStore, expeditionInfo, saveToDatabase, setCAIfNoCountry) {
587
- if (saveToDatabase === void 0) { saveToDatabase = true; }
588
- return __awaiter(void 0, void 0, void 0, function () {
589
- var cart, newExpeditionInfo;
590
- return __generator(this, function (_a) {
591
- switch (_a.label) {
592
- case 0:
593
- cart = !!newCart ? newCart : !!cartData ? cartData : (0, Cart_1.getDefaultCart)(Cart_1.CartTypeEnum.WEB);
594
- newExpeditionInfo = expeditionInfo;
595
- if (!!setCAIfNoCountry && !!expeditionInfo && !!!expeditionInfo.address.country) {
596
- newExpeditionInfo = __assign(__assign({}, expeditionInfo), { address: __assign(__assign({}, expeditionInfo.address), { country: 'CA' }) });
597
- }
598
- if (!!!saveToDatabase) return [3, 2];
599
- return [4, saveCart({
600
- is_pickup: isPickupAtStore,
601
- shipping_address: newExpeditionInfo,
602
- shipping_selected: undefined
603
- })];
604
- case 1:
605
- cart = _a.sent();
606
- return [3, 3];
607
- case 2:
608
- cart = __assign(__assign({}, cart), { is_pickup: isPickupAtStore, shipping_address: newExpeditionInfo, shipping_selected: undefined });
609
- _a.label = 3;
610
- case 3: return [2, cart];
611
- }
612
- });
613
- });
614
- };
615
- var getIsSameBillingThenShipping = function () {
616
- if (!!!cartData)
617
- return false;
618
- if (!!!cartData.billing_address && !!!cartData.shipping_address)
619
- return false;
620
- return (!!cartData.billing_address &&
621
- !!cartData.shipping_address &&
622
- (0, functions_1.string_to_slug)(cartData.billing_address.address.postal_code) ===
623
- (0, functions_1.string_to_slug)(cartData.shipping_address.address.postal_code) &&
624
- (0, functions_1.string_to_slug)(cartData.billing_address.address.line1) === (0, functions_1.string_to_slug)(cartData.shipping_address.address.line1));
625
- };
626
- var setShippingPayload = function (newCart, payload, saveToDatabase) {
627
- if (saveToDatabase === void 0) { saveToDatabase = true; }
628
- return __awaiter(void 0, void 0, void 0, function () {
629
- var cart;
630
- return __generator(this, function (_a) {
631
- switch (_a.label) {
632
- case 0:
633
- cart = !!newCart ? newCart : !!cartData ? cartData : (0, Cart_1.getDefaultCart)(Cart_1.CartTypeEnum.WEB);
634
- if (!!!saveToDatabase) return [3, 2];
635
- return [4, saveCart({ shipping_payload: payload })];
636
- case 1:
637
- cart = _a.sent();
638
- return [3, 3];
639
- case 2:
640
- cart = __assign(__assign({}, cart), { shipping_payload: payload });
641
- _a.label = 3;
642
- case 3: return [2, cart];
643
- }
644
- });
645
- });
646
- };
647
- var getShippingQuotes = function () { return __awaiter(void 0, void 0, void 0, function () {
648
- var request, responseData;
649
- return __generator(this, function (_a) {
650
- switch (_a.label) {
651
- case 0:
652
- if (!!!api || !!!sdk)
653
- return [2];
654
- if (!!!cartData)
655
- throw new Error("Can't get shipping quotes for an empty/undefined cart");
656
- if (cartData.status >= Cart_1.CartStatusEnum.CHECKOUT_PAYMENT_SUCCESS)
657
- throw new Error("Can't process a paid or higher status cart.");
658
- return [4, fetch("".concat(api.api, "/cart/getShippingQuotes"), {
659
- method: 'POST',
660
- headers: {
661
- Authorization: "Bearer ".concat(api.token),
662
- 'x-gng-ecomm-token': api.userToken
663
- },
664
- body: cartData.id
665
- })];
666
- case 1:
667
- request = _a.sent();
668
- return [4, request.json()];
669
- case 2:
670
- responseData = (_a.sent());
671
- if (responseData.status != 200 || !!responseData.error) {
672
- throw 'Erreur lors de la requête des quotes.' + responseData.error;
673
- }
674
- if (responseData.token) {
675
- sdk.setUserToken(responseData.token);
676
- }
677
- return [2, responseData.data.shippingQuotes];
678
- }
679
- });
680
- }); };
681
- var selectShippingQuote = function (quote) { return __awaiter(void 0, void 0, void 0, function () {
682
- var request, responseData, updatedCart;
683
- return __generator(this, function (_a) {
684
- switch (_a.label) {
685
- case 0:
686
- if (!!!api || !!!sdk)
687
- return [2];
688
- if (!!!cartData)
689
- throw new Error("Can't select shipping quote for an empty/undefined cart");
690
- return [4, fetch("".concat(api.api, "/cart/").concat(cartData.id, "/setSelectedShippingMethod"), {
691
- method: 'POST',
692
- headers: {
693
- Authorization: "Bearer ".concat(api.token),
694
- 'Content-Type': 'application/json',
695
- 'x-gng-ecomm-token': api.userToken
696
- },
697
- body: JSON.stringify(quote)
698
- })];
699
- case 1:
700
- request = _a.sent();
701
- return [4, request.json()];
702
- case 2:
703
- responseData = _a.sent();
704
- if (responseData.status != 200) {
705
- throw new Error('Impossible de sélectionner la shipping quote ' + responseData.error);
706
- }
707
- if (responseData.token) {
708
- sdk.setUserToken(responseData.token);
709
- }
710
- updatedCart = responseData.data;
711
- setCartData(updatedCart);
712
- return [2, updatedCart];
713
- }
714
- });
715
- }); };
716
- var setPromoCode = function (promo_code) { return __awaiter(void 0, void 0, void 0, function () {
717
- var error_2;
718
- return __generator(this, function (_a) {
719
- switch (_a.label) {
720
- case 0:
721
- _a.trys.push([0, 2, , 3]);
722
- return [4, saveCart({}, true, promo_code)];
723
- case 1:
724
- _a.sent();
725
- return [3, 3];
726
- case 2:
727
- error_2 = _a.sent();
728
- if (process.env.NODE_ENV === 'development')
729
- console.log("error on SDK while applying promo on cart", error_2);
730
- return [3, 3];
731
- case 3: return [2];
732
- }
733
- });
734
- }); };
735
- var getCartFromDatabase = function (cardID) { return __awaiter(void 0, void 0, void 0, function () {
736
- var request, responseData;
737
- return __generator(this, function (_a) {
738
- switch (_a.label) {
739
- case 0:
740
- if (!!!api || !!!sdk)
741
- return [2];
742
- return [4, fetch("".concat(api.api, "/cart/").concat(cardID), {
743
- method: 'GET',
744
- headers: {
745
- Authorization: "Bearer ".concat(api.token),
746
- 'Content-Type': 'application/json',
747
- 'x-gng-ecomm-token': api.userToken
748
- }
749
- })];
750
- case 1:
751
- request = _a.sent();
752
- return [4, request.json()];
753
- case 2:
754
- responseData = _a.sent();
755
- if (responseData.status !== 200) {
756
- throw new Error('Impossible de fetch le cart: ' + responseData.error);
757
- }
758
- if (responseData.token) {
759
- sdk.setUserToken(responseData.token);
760
- }
761
- return [2, responseData.data];
762
- }
763
- });
764
- }); };
765
- var saveCart = function (cart, saveToDatabase, promo_code, onlyNewCart, partialOnly) {
766
- if (saveToDatabase === void 0) { saveToDatabase = true; }
767
- if (onlyNewCart === void 0) { onlyNewCart = false; }
768
- if (partialOnly === void 0) { partialOnly = false; }
769
- return __awaiter(void 0, void 0, void 0, function () {
770
- var newCartData, response, responseData, cartIDInLocalStorage;
771
- return __generator(this, function (_a) {
772
- switch (_a.label) {
773
- case 0:
774
- newCartData = __assign(__assign({}, (!!cartData && !!!onlyNewCart ? cartData : (0, Cart_1.getDefaultCart)(Cart_1.CartTypeEnum.WEB))), cart);
775
- if (!!!newCartData)
776
- throw new Error("Can't save an empty/undefined cart");
777
- if (newCartData.status >= Cart_1.CartStatusEnum.CHECKOUT_PAYMENT_SUCCESS)
778
- throw new Error("Can't process a paid or higher status cart.");
779
- if (!!!api) return [3, 3];
780
- return [4, fetch("".concat(api.api, "/cart"), {
781
- method: 'POST',
782
- headers: {
783
- Authorization: "Bearer ".concat(api.token),
784
- 'Content-Type': 'application/json',
785
- 'x-gng-ecomm-token': api.userToken
786
- },
787
- body: JSON.stringify({ cartData: newCartData, currency: currency, locale: locale, promo_code: promo_code, saveToDatabase: saveToDatabase, partialOnly: partialOnly })
788
- })];
789
- case 1:
790
- response = _a.sent();
791
- return [4, response.json()];
792
- case 2:
793
- responseData = _a.sent();
794
- if (responseData.status != 200 || !!responseData.error) {
795
- setCartErrors([
796
- typeof responseData.error === 'string'
797
- ? responseData.error
798
- : (0, functions_1.getStringByLang)(responseData.error, locale)
799
- ]);
800
- }
801
- else {
802
- if (!!responseData.data) {
803
- cartIDInLocalStorage = localStorage.getItem("".concat(api.org, "__cart"));
804
- if (!!responseData.data.id && (!!!cartIDInLocalStorage || cartIDInLocalStorage !== responseData.data.id)) {
805
- localStorage.setItem("".concat(api.org, "__cart"), responseData.data.id);
806
- }
807
- newCartData = responseData.data;
808
- setCartData(newCartData);
809
- setCartErrors([]);
810
- }
811
- }
812
- return [3, 4];
813
- case 3:
814
- setCartData(newCartData);
815
- _a.label = 4;
816
- case 4: return [2, newCartData];
817
- }
818
- });
819
- });
820
- };
821
- var getApplicablePromos = function (forceShipping) { return __awaiter(void 0, void 0, void 0, function () {
822
- var request, responseData;
823
- return __generator(this, function (_a) {
824
- switch (_a.label) {
825
- case 0:
826
- if (!!!api || !!!sdk)
827
- return [2];
828
- if (!!!cartData)
829
- throw new Error("Can't get promos if no cart data");
830
- return [4, fetch("".concat(api.api, "/cart/").concat(cartData.id, "/getApplicablePromosWithShipping"), {
831
- method: 'GET',
832
- headers: {
833
- Authorization: "Bearer ".concat(api.token),
834
- 'Content-Type': 'application/json',
835
- 'x-gng-ecomm-token': api.userToken
836
- }
837
- })];
838
- case 1:
839
- request = _a.sent();
840
- return [4, request.json()];
841
- case 2:
842
- responseData = _a.sent();
843
- if (responseData.status !== 200) {
844
- throw new Error('Impossible de fetch les promos associé: ' + responseData.error);
845
- }
846
- return [2, responseData.data];
847
- }
848
- });
849
- }); };
850
- var canBePaidWithPA = function (userId) { return __awaiter(void 0, void 0, void 0, function () {
851
- var request, responseData;
852
- return __generator(this, function (_a) {
853
- switch (_a.label) {
854
- case 0:
855
- if (!!!api)
856
- return [2];
857
- if (!!!cartData)
858
- throw new Error("Can't check if cart is payable with PA if cartData is undefined.");
859
- if (!!!userId)
860
- throw new Error("Can't check if cart is payable with PA without userId");
861
- return [4, fetch("".concat(api.api, "/cart/").concat(cartData.id, "/canBePaidWithPA"), {
862
- method: 'POST',
863
- headers: {
864
- Authorization: "Bearer ".concat(api.token),
865
- 'Content-Type': 'application/json',
866
- 'x-gng-ecomm-token': api.userToken
867
- },
868
- body: JSON.stringify({ userId: userId })
869
- })];
870
- case 1:
871
- request = _a.sent();
872
- return [4, request.json()];
873
- case 2:
874
- responseData = _a.sent();
875
- if (responseData.status !== 200) {
876
- throw new Error("Can't apply promise to purchase to cart: " + responseData.error);
877
- }
878
- return [2, responseData.data];
879
- }
880
- });
881
- }); };
882
- var getPaymentIncentiveDiscountAmount = function (skipCheckForRuleFields) {
883
- if (!!!cartData)
884
- return;
885
- if (!!cartData.promo_after_taxes_amount)
886
- return cartData.promo_after_taxes_amount;
887
- var couldApplyIncentive = (0, discount_1.checkIfCouldApplyIncentivePromo)(cartData, skipCheckForRuleFields);
888
- if (!!!couldApplyIncentive)
889
- return;
890
- var incentiveCalculatedAmount = (0, discount_1.getAfterTaxesPromosTotalAmount)(cartData, true);
891
- return incentiveCalculatedAmount;
892
- };
893
- (0, react_1.useEffect)(function () {
894
- if (!!!locale || !!!cartData || cartData.locale === locale)
895
- return;
896
- saveCart({ locale: locale });
897
- }, [locale]);
898
- (0, react_1.useEffect)(function () {
899
- if (!!!sdk || !userLoaded)
900
- return;
901
- var checkCartCustomerValid = function () { return __awaiter(void 0, void 0, void 0, function () {
902
- var customerId, customerEmail, customerDoc;
903
- return __generator(this, function (_a) {
904
- switch (_a.label) {
905
- case 0:
906
- if (!(!isUserLoggedIn && !!cartData)) return [3, 2];
907
- customerId = cartData.customer_id;
908
- customerEmail = !!cartData.customer_info ? cartData.customer_info.customer_default_email : '';
909
- customerDoc = !!cartData.customer_info ? cartData.customer_info.pro_proof_doc : '';
910
- if (!(!!customerId || !!customerEmail || !!customerDoc)) return [3, 2];
911
- return [4, emptyCart()];
912
- case 1:
913
- _a.sent();
914
- _a.label = 2;
915
- case 2: return [2];
916
- }
917
- });
918
- }); };
919
- checkCartCustomerValid();
920
- }, [sdk, isUserLoggedIn, userLoaded, cartData]);
921
- (0, react_1.useEffect)(function () {
922
- if (!!!api)
923
- return;
924
- var getContent = function () { return __awaiter(void 0, void 0, void 0, function () {
925
- var cartData;
926
- return __generator(this, function (_a) {
927
- switch (_a.label) {
928
- case 0: return [4, initCart()];
929
- case 1:
930
- cartData = _a.sent();
931
- if (!!!cartData)
932
- return [2];
933
- setCartData(cartData);
934
- return [2];
935
- }
936
- });
937
- }); };
938
- getContent();
939
- }, [sdk]);
940
- return ((0, jsx_runtime_1.jsx)(_1.default.Provider, __assign({ value: {
941
- loading: loading,
942
- cartData: cartData,
943
- cartErrors: cartErrors,
944
- cartSliderOpen: cartSliderOpen,
945
- isGuest: isGuest,
946
- setIsGuest: setIsGuest,
947
- setCartErrors: setCartErrors,
948
- setCartData: setCartData,
949
- saveCart: saveCart,
950
- setCartLoading: setLoading,
951
- getCartFromDatabase: getCartFromDatabase,
952
- handlePayment: handlePayment,
953
- setCartSliderOpen: setCartSliderOpen,
954
- addItem: addItem,
955
- deleteItem: deleteItem,
956
- updateItem: updateItem,
957
- verifyCart: verifyCart,
958
- uploadFileToOrder: uploadFileToOrder,
959
- updateEmail: updateEmail,
960
- updateDefaultCustomer: updateDefaultCustomer,
961
- emptyCart: emptyCart,
962
- saveOrder: saveOrder,
963
- updateShippingAddress: updateShippingAddress,
964
- updateBillingAddress: updateBillingAddress,
965
- getIsSameBillingThenShipping: getIsSameBillingThenShipping,
966
- setShippingPayload: setShippingPayload,
967
- removeDiscountRule: removeDiscountRule,
968
- getShippingQuotes: getShippingQuotes,
969
- selectShippingQuote: selectShippingQuote,
970
- setPromoCode: setPromoCode,
971
- getApplicablePromos: getApplicablePromos,
972
- canBePaidWithPA: canBePaidWithPA,
973
- getPaymentIncentiveDiscountAmount: getPaymentIncentiveDiscountAmount,
974
- setPaidBy: setPaidBy
975
- } }, { children: children })));
976
- };
977
- exports.default = CartContextProvider;
1
+ "use strict";
2
+ var __assign = (this && this.__assign) || function () {
3
+ __assign = Object.assign || function(t) {
4
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
5
+ s = arguments[i];
6
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
+ t[p] = s[p];
8
+ }
9
+ return t;
10
+ };
11
+ return __assign.apply(this, arguments);
12
+ };
13
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
14
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
15
+ return new (P || (P = Promise))(function (resolve, reject) {
16
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
17
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
18
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
19
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
20
+ });
21
+ };
22
+ var __generator = (this && this.__generator) || function (thisArg, body) {
23
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
24
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
25
+ function verb(n) { return function (v) { return step([n, v]); }; }
26
+ function step(op) {
27
+ if (f) throw new TypeError("Generator is already executing.");
28
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
29
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
30
+ if (y = 0, t) op = [op[0] & 2, t.value];
31
+ switch (op[0]) {
32
+ case 0: case 1: t = op; break;
33
+ case 4: _.label++; return { value: op[1], done: false };
34
+ case 5: _.label++; y = op[1]; op = [0]; continue;
35
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
36
+ default:
37
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
38
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
39
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
40
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
41
+ if (t[2]) _.ops.pop();
42
+ _.trys.pop(); continue;
43
+ }
44
+ op = body.call(thisArg, _);
45
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
46
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
47
+ }
48
+ };
49
+ var __importDefault = (this && this.__importDefault) || function (mod) {
50
+ return (mod && mod.__esModule) ? mod : { "default": mod };
51
+ };
52
+ Object.defineProperty(exports, "__esModule", { value: true });
53
+ var jsx_runtime_1 = require("react/jsx-runtime");
54
+ var react_1 = require("react");
55
+ var Cart_1 = require("addio-admin-sdk/dist/Interfaces/Cart");
56
+ var ISnackbarContext_1 = require("../SnackbarContext/interfaces/ISnackbarContext");
57
+ var _1 = __importDefault(require("."));
58
+ var useSnackbar_1 = __importDefault(require("../../hooks/useSnackbar"));
59
+ var useSDK_1 = __importDefault(require("../../hooks/useSDK"));
60
+ var useData_1 = __importDefault(require("../../hooks/useData"));
61
+ var useUser_1 = __importDefault(require("../../hooks/useUser"));
62
+ var functions_1 = require("../../../../utils/functions");
63
+ var functions_2 = require("../../../../utils/functions");
64
+ var cart_1 = require("addio-admin-sdk/dist/utils/cart");
65
+ var discount_1 = require("addio-admin-sdk/dist/utils/discount");
66
+ var g2_1 = require("addio-admin-sdk/dist/rules/GR/utils/g2");
67
+ var CartContextProvider = function (_a) {
68
+ var locale = _a.locale, children = _a.children;
69
+ var sdk = (0, useSDK_1.default)();
70
+ var currency = (0, useData_1.default)().currency;
71
+ var _b = (0, useUser_1.default)(), isUserLoggedIn = _b.isUserLoggedIn, userLoaded = _b.loaded;
72
+ var setSnackbar = (0, useSnackbar_1.default)().setSnackbar;
73
+ var _c = (0, react_1.useState)(), cartData = _c[0], setCartData = _c[1];
74
+ var _d = (0, react_1.useState)([]), cartErrors = _d[0], setCartErrors = _d[1];
75
+ var _e = (0, react_1.useState)(false), loading = _e[0], setLoading = _e[1];
76
+ var _f = (0, react_1.useState)(false), cartSliderOpen = _f[0], setCartSliderOpen = _f[1];
77
+ var _g = (0, react_1.useState)(), isGuest = _g[0], setIsGuest = _g[1];
78
+ var api = !!sdk ? sdk.getAPIInfos() : null;
79
+ var initCart = function () { return __awaiter(void 0, void 0, void 0, function () {
80
+ var cartIDInLocalStorage, newCart, _2;
81
+ return __generator(this, function (_a) {
82
+ switch (_a.label) {
83
+ case 0:
84
+ if (!!!api)
85
+ return [2];
86
+ cartIDInLocalStorage = localStorage.getItem("".concat(api.org, "__cart"));
87
+ if (!!!cartIDInLocalStorage) return [3, 4];
88
+ _a.label = 1;
89
+ case 1:
90
+ _a.trys.push([1, 3, , 4]);
91
+ return [4, getCartFromDatabase(cartIDInLocalStorage)];
92
+ case 2:
93
+ newCart = _a.sent();
94
+ if (!!newCart && !!!newCart.clerk_id) {
95
+ if (newCart.status < Cart_1.CartStatusEnum.CHECKOUT_PAYMENT_SUCCESS) {
96
+ return [2, newCart];
97
+ }
98
+ else {
99
+ localStorage.removeItem("".concat(api.org, "__cart"));
100
+ }
101
+ }
102
+ return [3, 4];
103
+ case 3:
104
+ _2 = _a.sent();
105
+ return [2, undefined];
106
+ case 4: return [2, undefined];
107
+ }
108
+ });
109
+ }); };
110
+ var updateEmail = function (newCart, email, saveToDatabase) {
111
+ if (saveToDatabase === void 0) { saveToDatabase = true; }
112
+ return __awaiter(void 0, void 0, void 0, function () {
113
+ var cart;
114
+ return __generator(this, function (_a) {
115
+ switch (_a.label) {
116
+ case 0:
117
+ cart = !!newCart ? newCart : !!cartData ? cartData : (0, Cart_1.getDefaultCart)(Cart_1.CartTypeEnum.WEB);
118
+ if (!!!saveToDatabase) return [3, 2];
119
+ return [4, saveCart({ user_email: email })];
120
+ case 1:
121
+ cart = _a.sent();
122
+ return [3, 3];
123
+ case 2:
124
+ if (!!cart) {
125
+ cart = __assign(__assign({}, cart), { user_email: email });
126
+ }
127
+ _a.label = 3;
128
+ case 3: return [2, cart];
129
+ }
130
+ });
131
+ });
132
+ };
133
+ var updateDefaultCustomer = function (newCart, email, id, proInfo, saveToDatabase) {
134
+ if (saveToDatabase === void 0) { saveToDatabase = true; }
135
+ return __awaiter(void 0, void 0, void 0, function () {
136
+ var cart, newCustomerInfo;
137
+ return __generator(this, function (_a) {
138
+ switch (_a.label) {
139
+ case 0:
140
+ cart = !!newCart ? newCart : !!cartData ? cartData : (0, Cart_1.getDefaultCart)(Cart_1.CartTypeEnum.WEB);
141
+ newCustomerInfo = {
142
+ customer_id: id,
143
+ user_email: email,
144
+ customer_info: __assign({ customer_default_email: email }, (proInfo || {}))
145
+ };
146
+ if (!!!saveToDatabase) return [3, 2];
147
+ return [4, saveCart(newCustomerInfo)];
148
+ case 1:
149
+ _a.sent();
150
+ return [3, 3];
151
+ case 2:
152
+ cart = __assign(__assign({}, (!!cart ? cart : (0, Cart_1.getDefaultCart)(Cart_1.CartTypeEnum.WEB))), newCustomerInfo);
153
+ _a.label = 3;
154
+ case 3: return [2, cart];
155
+ }
156
+ });
157
+ });
158
+ };
159
+ var _handleInventoryError = function (shouldSave) { return __awaiter(void 0, void 0, void 0, function () {
160
+ return __generator(this, function (_a) {
161
+ switch (_a.label) {
162
+ case 0:
163
+ setSnackbar({
164
+ title: (0, functions_1.getStringByLang)({
165
+ en: 'This item is unavailable, or you haved reached the maximum amount you can add to your cart.',
166
+ fr: 'Cet item est indisponible, ou vous avez atteint la quantité maximale déjà au panier.'
167
+ }, locale),
168
+ type: ISnackbarContext_1.SnackbarTypeEnum.ERROR,
169
+ isShown: true,
170
+ isCart: true
171
+ });
172
+ if (!!!shouldSave) return [3, 2];
173
+ return [4, saveCart(undefined)];
174
+ case 1:
175
+ _a.sent();
176
+ _a.label = 2;
177
+ case 2: return [2];
178
+ }
179
+ });
180
+ }); };
181
+ var addItem = function (newCart, items, retro, useParentName, saveToDatabase, defaultAdd, isServiceUpsellOfSku, customPriceList) {
182
+ if (retro === void 0) { retro = true; }
183
+ if (useParentName === void 0) { useParentName = false; }
184
+ if (saveToDatabase === void 0) { saveToDatabase = true; }
185
+ if (defaultAdd === void 0) { defaultAdd = false; }
186
+ if (isServiceUpsellOfSku === void 0) { isServiceUpsellOfSku = false; }
187
+ return __awaiter(void 0, void 0, void 0, function () {
188
+ var cart, addedValues, i, productName;
189
+ return __generator(this, function (_a) {
190
+ switch (_a.label) {
191
+ case 0:
192
+ if (!!!api || !!!sdk)
193
+ throw new Error('SDK not initialised');
194
+ cart = !!newCart ? newCart : !!cartData ? cartData : (0, Cart_1.getDefaultCart)(Cart_1.CartTypeEnum.WEB);
195
+ if (!!isGuest && typeof isGuest === 'string' && !!cart.user_email) {
196
+ cart = __assign(__assign({}, cart), { user_email: isGuest });
197
+ }
198
+ return [4, (0, cart_1.addCartItems)(cart, Array.isArray(items) ? items : [items], sdk.products.getOneInventoryItem, api.org !== 'gr', _handleInventoryError, defaultAdd, isServiceUpsellOfSku, customPriceList)];
199
+ case 1:
200
+ addedValues = _a.sent();
201
+ cart = addedValues.cartData;
202
+ if (!!!saveToDatabase) return [3, 3];
203
+ return [4, saveCart(cart)];
204
+ case 2:
205
+ cart = _a.sent();
206
+ _a.label = 3;
207
+ case 3:
208
+ if (!!retro && !!items && (Array.isArray(items) ? !!items.length : true)) {
209
+ i = Array.isArray(items) ? items[0] : items;
210
+ productName = useParentName ? i.parent_name : i.name;
211
+ if (!!addedValues.updated) {
212
+ setSnackbar({
213
+ title: (0, functions_1.getStringByLang)({
214
+ en: "".concat(!!productName ? (0, functions_1.translate)(locale || 'en', productName) : 'The item', " has been successfuly updated in your cart!"),
215
+ fr: "".concat(!!productName ? (0, functions_1.translate)(locale || 'fr', productName) : "L'item", " a bien \u00E9t\u00E9 mis \u00E0 jour dans votre panier!")
216
+ }, locale),
217
+ type: ISnackbarContext_1.SnackbarTypeEnum.SUCCESS,
218
+ isShown: true,
219
+ isCart: true
220
+ });
221
+ }
222
+ else if (!!addedValues.added) {
223
+ setSnackbar({
224
+ title: (0, functions_1.getStringByLang)({
225
+ en: "".concat(!!productName ? (0, functions_1.translate)(locale || 'en', productName) : 'The item', " has been successfuly added to your cart!"),
226
+ fr: "".concat(!!productName ? (0, functions_1.translate)(locale || 'fr', productName) : "L'item", " a bien \u00E9t\u00E9 ajout\u00E9 \u00E0 votre panier!")
227
+ }, locale),
228
+ type: ISnackbarContext_1.SnackbarTypeEnum.SUCCESS,
229
+ isShown: true,
230
+ isCart: true
231
+ });
232
+ }
233
+ if (!!!addedValues.maxQtyItems) {
234
+ setCartSliderOpen(true);
235
+ }
236
+ }
237
+ return [2, cart];
238
+ }
239
+ });
240
+ });
241
+ };
242
+ var updateItem = function (newCart, items, saveToDatabase) {
243
+ if (saveToDatabase === void 0) { saveToDatabase = true; }
244
+ return __awaiter(void 0, void 0, void 0, function () {
245
+ var updatedItemsCart, itemsToUpdate, updatedValues;
246
+ return __generator(this, function (_a) {
247
+ switch (_a.label) {
248
+ case 0:
249
+ if (!!!api || !!!sdk)
250
+ throw new Error('SDK not initialised');
251
+ updatedItemsCart = !!newCart ? newCart : !!cartData ? cartData : (0, Cart_1.getDefaultCart)(Cart_1.CartTypeEnum.WEB);
252
+ itemsToUpdate = Array.isArray(items) ? items : [items];
253
+ return [4, (0, cart_1.updateCartItems)(updatedItemsCart, itemsToUpdate, sdk.products.getOneInventoryItem, api.org !== 'gr', _handleInventoryError)];
254
+ case 1:
255
+ updatedValues = _a.sent();
256
+ if (!!!saveToDatabase) return [3, 3];
257
+ return [4, saveCart({ items: updatedValues.updatedCart.items })];
258
+ case 2:
259
+ updatedItemsCart = _a.sent();
260
+ _a.label = 3;
261
+ case 3: return [2, updatedItemsCart];
262
+ }
263
+ });
264
+ });
265
+ };
266
+ var deleteItem = function (newCart, sku, saveToDatabase, onlyIfUpsellOf) {
267
+ if (saveToDatabase === void 0) { saveToDatabase = true; }
268
+ return __awaiter(void 0, void 0, void 0, function () {
269
+ var cart;
270
+ return __generator(this, function (_a) {
271
+ switch (_a.label) {
272
+ case 0:
273
+ cart = !!newCart ? newCart : !!cartData ? cartData : (0, Cart_1.getDefaultCart)(Cart_1.CartTypeEnum.WEB);
274
+ cart = (0, cart_1.deleteCartItem)(cart, Array.isArray(sku) ? sku : [sku], onlyIfUpsellOf);
275
+ if (!!!saveToDatabase) return [3, 2];
276
+ return [4, saveCart({ items: cart.items })];
277
+ case 1:
278
+ cart = _a.sent();
279
+ _a.label = 2;
280
+ case 2: return [2, cart];
281
+ }
282
+ });
283
+ });
284
+ };
285
+ var verifyCart = function () { return __awaiter(void 0, void 0, void 0, function () {
286
+ var request, responseData, response, error_1;
287
+ return __generator(this, function (_a) {
288
+ switch (_a.label) {
289
+ case 0:
290
+ if (!!!api || !!!cartData)
291
+ return [2, false];
292
+ if (cartData.status >= Cart_1.CartStatusEnum.CHECKOUT_PAYMENT_SUCCESS)
293
+ throw new Error("Can't process a paid or higher status cart.");
294
+ if (!!!cartData.id) return [3, 5];
295
+ _a.label = 1;
296
+ case 1:
297
+ _a.trys.push([1, 4, , 5]);
298
+ return [4, fetch("".concat(api.api, "/cart/").concat(cartData.id, "/verify"), {
299
+ method: 'GET',
300
+ headers: {
301
+ Authorization: "Bearer ".concat(api.token),
302
+ 'Content-Type': 'application/json',
303
+ 'x-gng-ecomm-token': api.userToken
304
+ }
305
+ })];
306
+ case 2:
307
+ request = _a.sent();
308
+ return [4, request.json()];
309
+ case 3:
310
+ responseData = (_a.sent());
311
+ if (responseData.status != 200) {
312
+ throw 'Erreur lors de la requête des quotes.' + responseData.error;
313
+ }
314
+ response = responseData.data;
315
+ setCartData(response.cart);
316
+ return [2, response.actionsDone];
317
+ case 4:
318
+ error_1 = _a.sent();
319
+ console.log('error in verifyCart: ', error_1);
320
+ return [3, 5];
321
+ case 5: return [2, false];
322
+ }
323
+ });
324
+ }); };
325
+ var uploadFileToOrder = function (newCart, file, propsName, saveToDatabase) {
326
+ if (saveToDatabase === void 0) { saveToDatabase = true; }
327
+ return __awaiter(void 0, void 0, void 0, function () {
328
+ var cart, base64, request, responseData;
329
+ var _a, _b, _c, _d;
330
+ return __generator(this, function (_e) {
331
+ switch (_e.label) {
332
+ case 0:
333
+ if (!!!api)
334
+ return [2];
335
+ cart = !!newCart ? newCart : !!cartData ? cartData : (0, Cart_1.getDefaultCart)(Cart_1.CartTypeEnum.WEB);
336
+ if (!!!cart.id)
337
+ return [2, {
338
+ cart: cart,
339
+ data: undefined,
340
+ error: "Couldn't convert cart data"
341
+ }];
342
+ if (cart.status >= Cart_1.CartStatusEnum.CHECKOUT_PAYMENT_SUCCESS)
343
+ throw new Error("Can't process a paid or higher status cart.");
344
+ return [4, (0, functions_2.toBase64)(file)];
345
+ case 1:
346
+ base64 = _e.sent();
347
+ if (typeof base64 !== 'string') {
348
+ return [2, {
349
+ cart: cart,
350
+ data: undefined,
351
+ error: "Couldn't convert file to base64"
352
+ }];
353
+ }
354
+ return [4, fetch("".concat(api.api, "/cart/").concat(cart.id, "/uploadBase64"), {
355
+ method: 'PUT',
356
+ headers: {
357
+ Authorization: "Bearer ".concat(api.token),
358
+ 'Content-Type': 'application/json',
359
+ 'x-gng-ecomm-token': api.userToken
360
+ },
361
+ body: JSON.stringify({
362
+ base64: base64
363
+ })
364
+ })];
365
+ case 2:
366
+ request = _e.sent();
367
+ return [4, request.json()];
368
+ case 3:
369
+ responseData = (_e.sent());
370
+ if (responseData.status != 200) {
371
+ throw new Error("Impossible d'uploader le fichier" + responseData.error);
372
+ }
373
+ if (!!!responseData.data) return [3, 6];
374
+ if (!!!saveToDatabase) return [3, 5];
375
+ return [4, saveCart({
376
+ shipping_payload: cart.shipping_payload
377
+ ? __assign(__assign({}, cart.shipping_payload), (_a = {}, _a[propsName] = responseData.data, _a)) : (_b = {},
378
+ _b[propsName] = responseData.data,
379
+ _b)
380
+ })];
381
+ case 4:
382
+ cart = _e.sent();
383
+ return [3, 6];
384
+ case 5:
385
+ cart = __assign(__assign({}, cart), { shipping_payload: cart.shipping_payload
386
+ ? __assign(__assign({}, cart.shipping_payload), (_c = {}, _c[propsName] = responseData.data, _c)) : (_d = {},
387
+ _d[propsName] = responseData.data,
388
+ _d) });
389
+ _e.label = 6;
390
+ case 6: return [2, { cart: cart, data: responseData.data, error: undefined }];
391
+ }
392
+ });
393
+ });
394
+ };
395
+ var emptyCart = function (removeCartIDFromLocalStorage) {
396
+ if (removeCartIDFromLocalStorage === void 0) { removeCartIDFromLocalStorage = true; }
397
+ return __awaiter(void 0, void 0, void 0, function () {
398
+ var cartID, cartFromDB, err_1;
399
+ return __generator(this, function (_a) {
400
+ switch (_a.label) {
401
+ case 0:
402
+ if (!!!api || !!!sdk)
403
+ return [2, false];
404
+ if (!!!removeCartIDFromLocalStorage) return [3, 1];
405
+ if (process.env.NODE_ENV !== 'production')
406
+ console.log('`${api.org}__cart`', "".concat(api.org, "__cart"));
407
+ localStorage.removeItem("".concat(api.org, "__cart"));
408
+ setCartData(undefined);
409
+ return [3, 5];
410
+ case 1:
411
+ cartID = localStorage.getItem("".concat(api.org, "__cart"));
412
+ if (!!!cartID) return [3, 5];
413
+ _a.label = 2;
414
+ case 2:
415
+ _a.trys.push([2, 4, , 5]);
416
+ return [4, getCartFromDatabase(cartID)];
417
+ case 3:
418
+ cartFromDB = _a.sent();
419
+ if (!!cartFromDB && !!!cartFromDB.clerk_id) {
420
+ setCartData(cartFromDB);
421
+ }
422
+ return [3, 5];
423
+ case 4:
424
+ err_1 = _a.sent();
425
+ return [3, 5];
426
+ case 5: return [2, true];
427
+ }
428
+ });
429
+ });
430
+ };
431
+ var handlePayment = function (data) {
432
+ if (data === void 0) { data = {}; }
433
+ return __awaiter(void 0, void 0, void 0, function () {
434
+ var request, responseData;
435
+ return __generator(this, function (_a) {
436
+ switch (_a.label) {
437
+ case 0:
438
+ if (!!!api || !!!sdk)
439
+ return [2, { error: { en: 'SDK not initialized', fr: 'SDK non initialisé' } }];
440
+ if (!!!cartData)
441
+ throw new Error("Can't pay an empty/undefined cart");
442
+ if (cartData.status >= Cart_1.CartStatusEnum.CHECKOUT_PAYMENT_SUCCESS)
443
+ throw new Error("Can't process a paid or higher status cart.");
444
+ return [4, fetch("".concat(api.api, "/cart/").concat(cartData.id, "/payment"), {
445
+ method: 'POST',
446
+ headers: {
447
+ Authorization: "Bearer ".concat(api.token),
448
+ 'Content-Type': 'application/json',
449
+ 'x-gng-ecomm-token': api.userToken
450
+ },
451
+ body: JSON.stringify(__assign({ customer_email: cartData.user_email, customer_name: cartData.billing_address ? cartData.billing_address.expedition_recipient_name : 'Anonyme', cartTotal: Number((cartData.total * 100).toFixed(0)) }, data))
452
+ })];
453
+ case 1:
454
+ request = _a.sent();
455
+ return [4, request.json()];
456
+ case 2:
457
+ responseData = _a.sent();
458
+ if (responseData.status != 200) {
459
+ return [2, { error: responseData.error }];
460
+ }
461
+ if (!!responseData.token) {
462
+ sdk.setUserToken(responseData.token);
463
+ }
464
+ return [2, { accessToken: responseData.data }];
465
+ }
466
+ });
467
+ });
468
+ };
469
+ var setPaidBy = function (paidByValue, customPriceList, chosenPayment) { return __awaiter(void 0, void 0, void 0, function () {
470
+ var partial, customIncentiveInfo, e_1;
471
+ return __generator(this, function (_a) {
472
+ switch (_a.label) {
473
+ case 0:
474
+ if (!!!cartData)
475
+ return [2];
476
+ partial = { paid_by: paidByValue, id: cartData.id };
477
+ if (!!customPriceList) {
478
+ customIncentiveInfo = (0, g2_1.getCustomIncentiveInfo)(customPriceList, cartData.discount_rules);
479
+ if (!!customIncentiveInfo) {
480
+ partial = __assign(__assign({}, partial), { discount_rules: customIncentiveInfo.updatedDiscountRules });
481
+ }
482
+ }
483
+ if (!!chosenPayment && chosenPayment != paidByValue) {
484
+ partial = __assign(__assign({}, partial), { shipping_payload: __assign(__assign({}, (cartData.shipping_payload || {})), { chosen_payment: chosenPayment }) });
485
+ }
486
+ _a.label = 1;
487
+ case 1:
488
+ _a.trys.push([1, 3, , 4]);
489
+ return [4, saveCart(partial, false, undefined, false, true)];
490
+ case 2:
491
+ _a.sent();
492
+ return [3, 4];
493
+ case 3:
494
+ e_1 = _a.sent();
495
+ console.log('error on saving cart with paid_by value: ', e_1);
496
+ return [3, 4];
497
+ case 4: return [2];
498
+ }
499
+ });
500
+ }); };
501
+ var saveOrder = function (payment_payload) { return __awaiter(void 0, void 0, void 0, function () {
502
+ var fetchData, response, err_2;
503
+ return __generator(this, function (_a) {
504
+ switch (_a.label) {
505
+ case 0:
506
+ if (!!!api)
507
+ throw new Error('SDK not initialised');
508
+ if (!!!cartData)
509
+ throw new Error("Can't pay an empty/undefined cart");
510
+ if (cartData.status >= Cart_1.CartStatusEnum.CHECKOUT_PAYMENT_SUCCESS)
511
+ throw new Error("Can't process a paid or higher status cart.");
512
+ _a.label = 1;
513
+ case 1:
514
+ _a.trys.push([1, 4, , 5]);
515
+ return [4, fetch("".concat(api.api, "/cart/").concat(cartData.id, "/saveOrder"), {
516
+ method: 'POST',
517
+ headers: {
518
+ authorization: "Bearer ".concat(api.token),
519
+ 'Content-Type': 'application/json',
520
+ 'x-gng-ecomm-token': api.userToken
521
+ },
522
+ body: JSON.stringify({ payment_payload: payment_payload })
523
+ })];
524
+ case 2:
525
+ fetchData = _a.sent();
526
+ return [4, fetchData.json()];
527
+ case 3:
528
+ response = (_a.sent());
529
+ if (response.status !== 200) {
530
+ return [2, 'error'];
531
+ }
532
+ return [2, response.data];
533
+ case 4:
534
+ err_2 = _a.sent();
535
+ return [2, 'error'];
536
+ case 5: return [2];
537
+ }
538
+ });
539
+ }); };
540
+ var removeDiscountRule = function (cart, code) { return __awaiter(void 0, void 0, void 0, function () {
541
+ var e_2;
542
+ return __generator(this, function (_a) {
543
+ switch (_a.label) {
544
+ case 0:
545
+ _a.trys.push([0, 2, , 3]);
546
+ return [4, saveCart({
547
+ subtotalWithoutPromotions: null,
548
+ cart_promo_applied: null,
549
+ cart_promos_applied: !!cart.cart_promos_applied
550
+ ? cart.cart_promos_applied.filter(function (x) { return x.promo_code !== code; })
551
+ : null
552
+ })];
553
+ case 1:
554
+ _a.sent();
555
+ return [2, true];
556
+ case 2:
557
+ e_2 = _a.sent();
558
+ console.log('error on removing discountRule: ', e_2.toString());
559
+ return [2, false];
560
+ case 3: return [2];
561
+ }
562
+ });
563
+ }); };
564
+ var updateBillingAddress = function (newCart, expeditionInfo, saveToDatabase, setCAIfNoCountry) {
565
+ if (saveToDatabase === void 0) { saveToDatabase = true; }
566
+ return __awaiter(void 0, void 0, void 0, function () {
567
+ var cart, newExpeditionInfo;
568
+ return __generator(this, function (_a) {
569
+ switch (_a.label) {
570
+ case 0:
571
+ cart = !!newCart ? newCart : !!cartData ? cartData : (0, Cart_1.getDefaultCart)(Cart_1.CartTypeEnum.WEB);
572
+ newExpeditionInfo = expeditionInfo;
573
+ if (!!setCAIfNoCountry && !!expeditionInfo && !!!expeditionInfo.address.country) {
574
+ newExpeditionInfo = __assign(__assign({}, expeditionInfo), { address: __assign(__assign({}, expeditionInfo.address), { country: 'CA' }) });
575
+ }
576
+ if (!!!saveToDatabase) return [3, 2];
577
+ return [4, saveCart({ billing_address: newExpeditionInfo })];
578
+ case 1:
579
+ cart = _a.sent();
580
+ return [3, 3];
581
+ case 2:
582
+ cart = __assign(__assign({}, cart), { billing_address: newExpeditionInfo });
583
+ _a.label = 3;
584
+ case 3: return [2, cart];
585
+ }
586
+ });
587
+ });
588
+ };
589
+ var updateShippingAddress = function (newCart, isPickupAtStore, expeditionInfo, saveToDatabase, setCAIfNoCountry) {
590
+ if (saveToDatabase === void 0) { saveToDatabase = true; }
591
+ return __awaiter(void 0, void 0, void 0, function () {
592
+ var cart, newExpeditionInfo;
593
+ return __generator(this, function (_a) {
594
+ switch (_a.label) {
595
+ case 0:
596
+ cart = !!newCart ? newCart : !!cartData ? cartData : (0, Cart_1.getDefaultCart)(Cart_1.CartTypeEnum.WEB);
597
+ newExpeditionInfo = expeditionInfo;
598
+ if (!!setCAIfNoCountry && !!expeditionInfo && !!!expeditionInfo.address.country) {
599
+ newExpeditionInfo = __assign(__assign({}, expeditionInfo), { address: __assign(__assign({}, expeditionInfo.address), { country: 'CA' }) });
600
+ }
601
+ if (!!!saveToDatabase) return [3, 2];
602
+ return [4, saveCart({
603
+ is_pickup: isPickupAtStore,
604
+ shipping_address: newExpeditionInfo,
605
+ shipping_selected: undefined
606
+ })];
607
+ case 1:
608
+ cart = _a.sent();
609
+ return [3, 3];
610
+ case 2:
611
+ cart = __assign(__assign({}, cart), { is_pickup: isPickupAtStore, shipping_address: newExpeditionInfo, shipping_selected: undefined });
612
+ _a.label = 3;
613
+ case 3: return [2, cart];
614
+ }
615
+ });
616
+ });
617
+ };
618
+ var getIsSameBillingThenShipping = function () {
619
+ if (!!!cartData)
620
+ return false;
621
+ if (!!!cartData.billing_address && !!!cartData.shipping_address)
622
+ return false;
623
+ return (!!cartData.billing_address &&
624
+ !!cartData.shipping_address &&
625
+ (0, functions_1.string_to_slug)(cartData.billing_address.address.postal_code) ===
626
+ (0, functions_1.string_to_slug)(cartData.shipping_address.address.postal_code) &&
627
+ (0, functions_1.string_to_slug)(cartData.billing_address.address.line1) === (0, functions_1.string_to_slug)(cartData.shipping_address.address.line1));
628
+ };
629
+ var setShippingPayload = function (newCart, payload, saveToDatabase) {
630
+ if (saveToDatabase === void 0) { saveToDatabase = true; }
631
+ return __awaiter(void 0, void 0, void 0, function () {
632
+ var cart;
633
+ return __generator(this, function (_a) {
634
+ switch (_a.label) {
635
+ case 0:
636
+ cart = !!newCart ? newCart : !!cartData ? cartData : (0, Cart_1.getDefaultCart)(Cart_1.CartTypeEnum.WEB);
637
+ if (!!!saveToDatabase) return [3, 2];
638
+ return [4, saveCart({ shipping_payload: payload })];
639
+ case 1:
640
+ cart = _a.sent();
641
+ return [3, 3];
642
+ case 2:
643
+ cart = __assign(__assign({}, cart), { shipping_payload: payload });
644
+ _a.label = 3;
645
+ case 3: return [2, cart];
646
+ }
647
+ });
648
+ });
649
+ };
650
+ var getShippingQuotes = function () { return __awaiter(void 0, void 0, void 0, function () {
651
+ var request, responseData;
652
+ return __generator(this, function (_a) {
653
+ switch (_a.label) {
654
+ case 0:
655
+ if (!!!api || !!!sdk)
656
+ return [2];
657
+ if (!!!cartData)
658
+ throw new Error("Can't get shipping quotes for an empty/undefined cart");
659
+ if (cartData.status >= Cart_1.CartStatusEnum.CHECKOUT_PAYMENT_SUCCESS)
660
+ throw new Error("Can't process a paid or higher status cart.");
661
+ return [4, fetch("".concat(api.api, "/cart/getShippingQuotes"), {
662
+ method: 'POST',
663
+ headers: {
664
+ Authorization: "Bearer ".concat(api.token),
665
+ 'x-gng-ecomm-token': api.userToken
666
+ },
667
+ body: cartData.id
668
+ })];
669
+ case 1:
670
+ request = _a.sent();
671
+ return [4, request.json()];
672
+ case 2:
673
+ responseData = (_a.sent());
674
+ if (responseData.status != 200 || !!responseData.error) {
675
+ throw 'Erreur lors de la requête des quotes.' + responseData.error;
676
+ }
677
+ if (responseData.token) {
678
+ sdk.setUserToken(responseData.token);
679
+ }
680
+ return [2, responseData.data.shippingQuotes];
681
+ }
682
+ });
683
+ }); };
684
+ var selectShippingQuote = function (quote) { return __awaiter(void 0, void 0, void 0, function () {
685
+ var request, responseData, updatedCart;
686
+ return __generator(this, function (_a) {
687
+ switch (_a.label) {
688
+ case 0:
689
+ if (!!!api || !!!sdk)
690
+ return [2];
691
+ if (!!!cartData)
692
+ throw new Error("Can't select shipping quote for an empty/undefined cart");
693
+ return [4, fetch("".concat(api.api, "/cart/").concat(cartData.id, "/setSelectedShippingMethod"), {
694
+ method: 'POST',
695
+ headers: {
696
+ Authorization: "Bearer ".concat(api.token),
697
+ 'Content-Type': 'application/json',
698
+ 'x-gng-ecomm-token': api.userToken
699
+ },
700
+ body: JSON.stringify(quote)
701
+ })];
702
+ case 1:
703
+ request = _a.sent();
704
+ return [4, request.json()];
705
+ case 2:
706
+ responseData = _a.sent();
707
+ if (responseData.status != 200) {
708
+ throw new Error('Impossible de sélectionner la shipping quote ' + responseData.error);
709
+ }
710
+ if (responseData.token) {
711
+ sdk.setUserToken(responseData.token);
712
+ }
713
+ updatedCart = responseData.data;
714
+ setCartData(updatedCart);
715
+ return [2, updatedCart];
716
+ }
717
+ });
718
+ }); };
719
+ var setPromoCode = function (promo_code) { return __awaiter(void 0, void 0, void 0, function () {
720
+ var error_2;
721
+ return __generator(this, function (_a) {
722
+ switch (_a.label) {
723
+ case 0:
724
+ _a.trys.push([0, 2, , 3]);
725
+ return [4, saveCart({}, true, promo_code)];
726
+ case 1:
727
+ _a.sent();
728
+ return [3, 3];
729
+ case 2:
730
+ error_2 = _a.sent();
731
+ if (process.env.NODE_ENV === 'development')
732
+ console.log("error on SDK while applying promo on cart", error_2);
733
+ return [3, 3];
734
+ case 3: return [2];
735
+ }
736
+ });
737
+ }); };
738
+ var getCartFromDatabase = function (cardID) { return __awaiter(void 0, void 0, void 0, function () {
739
+ var request, responseData;
740
+ return __generator(this, function (_a) {
741
+ switch (_a.label) {
742
+ case 0:
743
+ if (!!!api || !!!sdk)
744
+ return [2];
745
+ return [4, fetch("".concat(api.api, "/cart/").concat(cardID), {
746
+ method: 'GET',
747
+ headers: {
748
+ Authorization: "Bearer ".concat(api.token),
749
+ 'Content-Type': 'application/json',
750
+ 'x-gng-ecomm-token': api.userToken
751
+ }
752
+ })];
753
+ case 1:
754
+ request = _a.sent();
755
+ return [4, request.json()];
756
+ case 2:
757
+ responseData = _a.sent();
758
+ if (responseData.status !== 200) {
759
+ throw new Error('Impossible de fetch le cart: ' + responseData.error);
760
+ }
761
+ if (responseData.token) {
762
+ sdk.setUserToken(responseData.token);
763
+ }
764
+ return [2, responseData.data];
765
+ }
766
+ });
767
+ }); };
768
+ var saveCart = function (cart, saveToDatabase, promo_code, onlyNewCart, partialOnly) {
769
+ if (saveToDatabase === void 0) { saveToDatabase = true; }
770
+ if (onlyNewCart === void 0) { onlyNewCart = false; }
771
+ if (partialOnly === void 0) { partialOnly = false; }
772
+ return __awaiter(void 0, void 0, void 0, function () {
773
+ var newCartData, response, responseData, cartIDInLocalStorage;
774
+ return __generator(this, function (_a) {
775
+ switch (_a.label) {
776
+ case 0:
777
+ newCartData = __assign(__assign({}, (!!cartData && !!!onlyNewCart ? cartData : (0, Cart_1.getDefaultCart)(Cart_1.CartTypeEnum.WEB))), cart);
778
+ if (!!!newCartData)
779
+ throw new Error("Can't save an empty/undefined cart");
780
+ if (newCartData.status >= Cart_1.CartStatusEnum.CHECKOUT_PAYMENT_SUCCESS)
781
+ throw new Error("Can't process a paid or higher status cart.");
782
+ if (!!!api) return [3, 3];
783
+ return [4, fetch("".concat(api.api, "/cart"), {
784
+ method: 'POST',
785
+ headers: {
786
+ Authorization: "Bearer ".concat(api.token),
787
+ 'Content-Type': 'application/json',
788
+ 'x-gng-ecomm-token': api.userToken
789
+ },
790
+ body: JSON.stringify({ cartData: newCartData, currency: currency, locale: locale, promo_code: promo_code, saveToDatabase: saveToDatabase, partialOnly: partialOnly })
791
+ })];
792
+ case 1:
793
+ response = _a.sent();
794
+ return [4, response.json()];
795
+ case 2:
796
+ responseData = _a.sent();
797
+ if (responseData.status != 200 || !!responseData.error) {
798
+ setCartErrors([
799
+ typeof responseData.error === 'string'
800
+ ? responseData.error
801
+ : (0, functions_1.getStringByLang)(responseData.error, locale)
802
+ ]);
803
+ }
804
+ else {
805
+ if (!!responseData.data) {
806
+ cartIDInLocalStorage = localStorage.getItem("".concat(api.org, "__cart"));
807
+ if (!!responseData.data.id && (!!!cartIDInLocalStorage || cartIDInLocalStorage !== responseData.data.id)) {
808
+ localStorage.setItem("".concat(api.org, "__cart"), responseData.data.id);
809
+ }
810
+ newCartData = responseData.data;
811
+ setCartData(newCartData);
812
+ setCartErrors([]);
813
+ }
814
+ }
815
+ return [3, 4];
816
+ case 3:
817
+ setCartData(newCartData);
818
+ _a.label = 4;
819
+ case 4: return [2, newCartData];
820
+ }
821
+ });
822
+ });
823
+ };
824
+ var getApplicablePromos = function (forceShipping) { return __awaiter(void 0, void 0, void 0, function () {
825
+ var request, responseData;
826
+ return __generator(this, function (_a) {
827
+ switch (_a.label) {
828
+ case 0:
829
+ if (!!!api || !!!sdk)
830
+ return [2];
831
+ if (!!!cartData)
832
+ throw new Error("Can't get promos if no cart data");
833
+ return [4, fetch("".concat(api.api, "/cart/").concat(cartData.id, "/getApplicablePromosWithShipping"), {
834
+ method: 'GET',
835
+ headers: {
836
+ Authorization: "Bearer ".concat(api.token),
837
+ 'Content-Type': 'application/json',
838
+ 'x-gng-ecomm-token': api.userToken
839
+ }
840
+ })];
841
+ case 1:
842
+ request = _a.sent();
843
+ return [4, request.json()];
844
+ case 2:
845
+ responseData = _a.sent();
846
+ if (responseData.status !== 200) {
847
+ throw new Error('Impossible de fetch les promos associé: ' + responseData.error);
848
+ }
849
+ return [2, responseData.data];
850
+ }
851
+ });
852
+ }); };
853
+ var canBePaidWithPA = function (userId) { return __awaiter(void 0, void 0, void 0, function () {
854
+ var request, responseData;
855
+ return __generator(this, function (_a) {
856
+ switch (_a.label) {
857
+ case 0:
858
+ if (!!!api)
859
+ return [2];
860
+ if (!!!cartData)
861
+ throw new Error("Can't check if cart is payable with PA if cartData is undefined.");
862
+ if (!!!userId)
863
+ throw new Error("Can't check if cart is payable with PA without userId");
864
+ return [4, fetch("".concat(api.api, "/cart/").concat(cartData.id, "/canBePaidWithPA"), {
865
+ method: 'POST',
866
+ headers: {
867
+ Authorization: "Bearer ".concat(api.token),
868
+ 'Content-Type': 'application/json',
869
+ 'x-gng-ecomm-token': api.userToken
870
+ },
871
+ body: JSON.stringify({ userId: userId })
872
+ })];
873
+ case 1:
874
+ request = _a.sent();
875
+ return [4, request.json()];
876
+ case 2:
877
+ responseData = _a.sent();
878
+ if (responseData.status !== 200) {
879
+ throw new Error("Can't apply promise to purchase to cart: " + responseData.error);
880
+ }
881
+ return [2, responseData.data];
882
+ }
883
+ });
884
+ }); };
885
+ var getPaymentIncentiveDiscountAmount = function (skipCheckForRuleFields) {
886
+ if (!!!cartData)
887
+ return;
888
+ if (!!cartData.promo_after_taxes_amount)
889
+ return cartData.promo_after_taxes_amount;
890
+ var couldApplyIncentive = (0, discount_1.checkIfCouldApplyIncentivePromo)(cartData, skipCheckForRuleFields);
891
+ if (!!!couldApplyIncentive)
892
+ return;
893
+ var incentiveCalculatedAmount = (0, discount_1.getAfterTaxesPromosTotalAmount)(cartData, true);
894
+ return incentiveCalculatedAmount;
895
+ };
896
+ (0, react_1.useEffect)(function () {
897
+ if (!!!locale || !!!cartData || cartData.locale === locale)
898
+ return;
899
+ saveCart({ locale: locale });
900
+ }, [locale]);
901
+ (0, react_1.useEffect)(function () {
902
+ if (!!!sdk || !userLoaded)
903
+ return;
904
+ var checkCartCustomerValid = function () { return __awaiter(void 0, void 0, void 0, function () {
905
+ var customerId, customerEmail, customerDoc;
906
+ return __generator(this, function (_a) {
907
+ switch (_a.label) {
908
+ case 0:
909
+ if (!(!isUserLoggedIn && !!cartData)) return [3, 2];
910
+ customerId = cartData.customer_id;
911
+ customerEmail = !!cartData.customer_info ? cartData.customer_info.customer_default_email : '';
912
+ customerDoc = !!cartData.customer_info ? cartData.customer_info.pro_proof_doc : '';
913
+ if (!(!!customerId || !!customerEmail || !!customerDoc)) return [3, 2];
914
+ return [4, emptyCart()];
915
+ case 1:
916
+ _a.sent();
917
+ _a.label = 2;
918
+ case 2: return [2];
919
+ }
920
+ });
921
+ }); };
922
+ checkCartCustomerValid();
923
+ }, [sdk, isUserLoggedIn, userLoaded, cartData]);
924
+ (0, react_1.useEffect)(function () {
925
+ if (!!!api)
926
+ return;
927
+ var getContent = function () { return __awaiter(void 0, void 0, void 0, function () {
928
+ var cartData;
929
+ return __generator(this, function (_a) {
930
+ switch (_a.label) {
931
+ case 0: return [4, initCart()];
932
+ case 1:
933
+ cartData = _a.sent();
934
+ if (!!!cartData)
935
+ return [2];
936
+ setCartData(cartData);
937
+ return [2];
938
+ }
939
+ });
940
+ }); };
941
+ getContent();
942
+ }, [sdk]);
943
+ return ((0, jsx_runtime_1.jsx)(_1.default.Provider, __assign({ value: {
944
+ loading: loading,
945
+ cartData: cartData,
946
+ cartErrors: cartErrors,
947
+ cartSliderOpen: cartSliderOpen,
948
+ isGuest: isGuest,
949
+ setIsGuest: setIsGuest,
950
+ setCartErrors: setCartErrors,
951
+ setCartData: setCartData,
952
+ saveCart: saveCart,
953
+ setCartLoading: setLoading,
954
+ getCartFromDatabase: getCartFromDatabase,
955
+ handlePayment: handlePayment,
956
+ setCartSliderOpen: setCartSliderOpen,
957
+ addItem: addItem,
958
+ deleteItem: deleteItem,
959
+ updateItem: updateItem,
960
+ verifyCart: verifyCart,
961
+ uploadFileToOrder: uploadFileToOrder,
962
+ updateEmail: updateEmail,
963
+ updateDefaultCustomer: updateDefaultCustomer,
964
+ emptyCart: emptyCart,
965
+ saveOrder: saveOrder,
966
+ updateShippingAddress: updateShippingAddress,
967
+ updateBillingAddress: updateBillingAddress,
968
+ getIsSameBillingThenShipping: getIsSameBillingThenShipping,
969
+ setShippingPayload: setShippingPayload,
970
+ removeDiscountRule: removeDiscountRule,
971
+ getShippingQuotes: getShippingQuotes,
972
+ selectShippingQuote: selectShippingQuote,
973
+ setPromoCode: setPromoCode,
974
+ getApplicablePromos: getApplicablePromos,
975
+ canBePaidWithPA: canBePaidWithPA,
976
+ getPaymentIncentiveDiscountAmount: getPaymentIncentiveDiscountAmount,
977
+ setPaidBy: setPaidBy
978
+ } }, { children: children })));
979
+ };
980
+ exports.default = CartContextProvider;
978
981
  //# sourceMappingURL=CartContextProvider.js.map