@sentecacommerce-theme/lib 0.14.8 → 0.14.11

Sign up to get free protection for your applications and to get access to all the features.
@@ -15,7 +15,7 @@ var purchase = function(order, config) {
15
15
  var isGtagLoaded = Boolean(window.gtag);
16
16
  var hasGoogleId = Boolean((ref8 = config.google) === null || ref8 === void 0 ? void 0 : ref8.analytics);
17
17
  if (isGtagLoaded && hasGoogleId) {
18
- var ref9, ref10, ref11;
18
+ var ref9, ref10, ref11, ref12;
19
19
  var items = ((ref9 = order.lineItems) === null || ref9 === void 0 ? void 0 : ref9.map(function(item, i) {
20
20
  return {
21
21
  id: item.variant.sku,
@@ -23,36 +23,36 @@ var purchase = function(order, config) {
23
23
  list_name: config.defaultMerchant,
24
24
  list_position: i + 1,
25
25
  quantity: item.quantity,
26
- price: (0, _decodePrice).decodePrice(item.totalPrice)
26
+ price: (item === null || item === void 0 ? void 0 : item.totalPrice) && (0, _decodePrice).decodePrice(item.totalPrice)
27
27
  };
28
28
  })) || [];
29
- (ref11 = window.gtag) === null || ref11 === void 0 ? void 0 : ref11.call(window, 'event', 'purchase', {
29
+ (ref12 = window.gtag) === null || ref12 === void 0 ? void 0 : ref12.call(window, 'event', 'purchase', {
30
30
  transaction_id: order._id,
31
31
  send_to: (ref10 = config.google) === null || ref10 === void 0 ? void 0 : ref10.analytics,
32
32
  affiliation: config.defaultMerchant,
33
33
  value: (0, _decodePrice).decodePrice(order.grandTotalPrice),
34
34
  currency: order.currencyCode,
35
35
  tax: (0, _decodePrice).decodePrice(centAmount),
36
- shipping: (order === null || order === void 0 ? void 0 : order.shippings) ? (0, _decodePrice).decodePrice(order.shippings[0].price) : 0,
36
+ shipping: (order === null || order === void 0 ? void 0 : order.shippings) ? (0, _decodePrice).decodePrice((ref11 = order.shippings[0]) === null || ref11 === void 0 ? void 0 : ref11.price) : 0,
37
37
  items: items
38
38
  });
39
39
  }
40
40
  if (isGtagLoaded && hasGoogleReMarketing) {
41
- var ref12, ref13, ref14, ref15, ref16;
42
- (ref16 = window.gtag) === null || ref16 === void 0 ? void 0 : ref16.call(window, 'event', 'conversion', {
43
- send_to: "".concat((ref12 = config.google) === null || ref12 === void 0 ? void 0 : (ref13 = ref12.reMarketing) === null || ref13 === void 0 ? void 0 : ref13.id, "/").concat((ref14 = config.google) === null || ref14 === void 0 ? void 0 : (ref15 = ref14.reMarketing) === null || ref15 === void 0 ? void 0 : ref15.label),
41
+ var ref13, ref14, ref15, ref16, ref17;
42
+ (ref17 = window.gtag) === null || ref17 === void 0 ? void 0 : ref17.call(window, 'event', 'conversion', {
43
+ send_to: "".concat((ref13 = config.google) === null || ref13 === void 0 ? void 0 : (ref14 = ref13.reMarketing) === null || ref14 === void 0 ? void 0 : ref14.id, "/").concat((ref15 = config.google) === null || ref15 === void 0 ? void 0 : (ref16 = ref15.reMarketing) === null || ref16 === void 0 ? void 0 : ref16.label),
44
44
  value: (0, _decodePrice).decodePrice(order.grandTotalPrice),
45
45
  currency: order.currencyCode,
46
46
  transaction_id: order._id
47
47
  });
48
48
  }
49
49
  if (facebookPixelLoaded) {
50
- var ref17, ref18;
51
- (ref18 = window.fbq) === null || ref18 === void 0 ? void 0 : ref18.call(window, 'track', 'Purchase', {
50
+ var ref18, ref19;
51
+ (ref19 = window.fbq) === null || ref19 === void 0 ? void 0 : ref19.call(window, 'track', 'Purchase', {
52
52
  currency: order.currencyCode,
53
53
  value: (0, _decodePrice).decodePrice(order.grandTotalPrice),
54
54
  content_type: 'product',
55
- contents: ((ref17 = order.lineItems) === null || ref17 === void 0 ? void 0 : ref17.map(function(product) {
55
+ contents: ((ref18 = order.lineItems) === null || ref18 === void 0 ? void 0 : ref18.map(function(product) {
56
56
  return {
57
57
  id: product.variant.sku,
58
58
  quantity: product.quantity
@@ -104,8 +104,12 @@ function genericOfficeValidation(param) {
104
104
  }
105
105
  function pickupFromStoreValidation(param) {
106
106
  var mod = param.mod, errorLabels = param.errorLabels;
107
- var ref;
108
- return !(mod === null || mod === void 0 ? void 0 : (ref = mod.moduleData) === null || ref === void 0 ? void 0 : ref.stockLocation) ? {
107
+ var ref, ref12;
108
+ // Returning undefined means validation is passed
109
+ if (mod === null || mod === void 0 ? void 0 : (ref = mod.moduleData) === null || ref === void 0 ? void 0 : ref.isWarehouseShipping) {
110
+ return undefined;
111
+ }
112
+ return !(mod === null || mod === void 0 ? void 0 : (ref12 = mod.moduleData) === null || ref12 === void 0 ? void 0 : ref12.stockLocation) ? {
109
113
  pickupFromStore: errorLabels.noStoreSelected
110
114
  } : undefined;
111
115
  }
@@ -135,8 +139,8 @@ function validateShipping(data, mod, errorLabels, validations) {
135
139
  var requiredFields = arguments.length > 4 && arguments[4] !== void 0 ? arguments[4] : defaultRequiredFields, enableNoShippingMethodMode = arguments.length > 5 ? arguments[5] : void 0;
136
140
  var validateErrors = {};
137
141
  var globalErrors = requiredFields.reduce(function(errors, field) {
138
- var ref, ref13;
139
- if (!(data === null || data === void 0 ? void 0 : (ref = data[field]) === null || ref === void 0 ? void 0 : (ref13 = ref.trim) === null || ref13 === void 0 ? void 0 : ref13.call(ref))) {
142
+ var ref, ref14;
143
+ if (!(data === null || data === void 0 ? void 0 : (ref = data[field]) === null || ref === void 0 ? void 0 : (ref14 = ref.trim) === null || ref14 === void 0 ? void 0 : ref14.call(ref))) {
140
144
  return _objectSpread({}, errors, _defineProperty({}, field, errorLabels.fieldIsRequired));
141
145
  }
142
146
  return errors;
@@ -148,13 +152,13 @@ function validateShipping(data, mod, errorLabels, validations) {
148
152
  globalErrors.phoneNumber = (errorLabels === null || errorLabels === void 0 ? void 0 : errorLabels.invalidPhoneNumber) || '';
149
153
  }
150
154
  if (!enableNoShippingMethodMode) {
151
- var ref14, ref12;
152
- if (!(mod === null || mod === void 0 ? void 0 : mod.moduleKey) || !(mod === null || mod === void 0 ? void 0 : (ref14 = mod.moduleData) === null || ref14 === void 0 ? void 0 : ref14.methodKey)) {
155
+ var ref15, ref13;
156
+ if (!(mod === null || mod === void 0 ? void 0 : mod.moduleKey) || !(mod === null || mod === void 0 ? void 0 : (ref15 = mod.moduleData) === null || ref15 === void 0 ? void 0 : ref15.methodKey)) {
153
157
  return _objectSpread({}, globalErrors, {
154
158
  courier: errorLabels.selectCourier
155
159
  });
156
160
  }
157
- var validate = (ref12 = validations[mod === null || mod === void 0 ? void 0 : mod.moduleKey]) === null || ref12 === void 0 ? void 0 : ref12[mod === null || mod === void 0 ? void 0 : mod.moduleData.methodKey];
161
+ var validate = (ref13 = validations[mod === null || mod === void 0 ? void 0 : mod.moduleKey]) === null || ref13 === void 0 ? void 0 : ref13[mod === null || mod === void 0 ? void 0 : mod.moduleData.methodKey];
158
162
  if (!validate) {
159
163
  throw new Error("Validation for shipping with provider: ".concat(mod === null || mod === void 0 ? void 0 : mod.moduleKey, " and method key: ").concat(mod === null || mod === void 0 ? void 0 : mod.moduleData.methodKey, " not found"));
160
164
  }
@@ -0,0 +1,141 @@
1
+ Object.defineProperty(exports, "__esModule", {
2
+ value: true
3
+ });
4
+ exports.CompareContextProvider = CompareContextProvider;
5
+ exports.useCompareState = useCompareState;
6
+ exports.useCompareFunctions = useCompareFunctions;
7
+ var _react = _interopRequireWildcard(require("react"));
8
+ function _arrayLikeToArray(arr, len) {
9
+ if (len == null || len > arr.length) len = arr.length;
10
+ for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i];
11
+ return arr2;
12
+ }
13
+ function _arrayWithHoles(arr) {
14
+ if (Array.isArray(arr)) return arr;
15
+ }
16
+ function _interopRequireWildcard(obj) {
17
+ if (obj && obj.__esModule) {
18
+ return obj;
19
+ } else {
20
+ var newObj = {};
21
+ if (obj != null) {
22
+ for(var key in obj){
23
+ if (Object.prototype.hasOwnProperty.call(obj, key)) {
24
+ var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {};
25
+ if (desc.get || desc.set) {
26
+ Object.defineProperty(newObj, key, desc);
27
+ } else {
28
+ newObj[key] = obj[key];
29
+ }
30
+ }
31
+ }
32
+ }
33
+ newObj.default = obj;
34
+ return newObj;
35
+ }
36
+ }
37
+ function _iterableToArrayLimit(arr, i) {
38
+ var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"];
39
+ if (_i == null) return;
40
+ var _arr = [];
41
+ var _n = true;
42
+ var _d = false;
43
+ var _s, _e;
44
+ try {
45
+ for(_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true){
46
+ _arr.push(_s.value);
47
+ if (i && _arr.length === i) break;
48
+ }
49
+ } catch (err) {
50
+ _d = true;
51
+ _e = err;
52
+ } finally{
53
+ try {
54
+ if (!_n && _i["return"] != null) _i["return"]();
55
+ } finally{
56
+ if (_d) throw _e;
57
+ }
58
+ }
59
+ return _arr;
60
+ }
61
+ function _nonIterableRest() {
62
+ throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
63
+ }
64
+ function _slicedToArray(arr, i) {
65
+ return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();
66
+ }
67
+ function _unsupportedIterableToArray(o, minLen) {
68
+ if (!o) return;
69
+ if (typeof o === "string") return _arrayLikeToArray(o, minLen);
70
+ var n = Object.prototype.toString.call(o).slice(8, -1);
71
+ if (n === "Object" && o.constructor) n = o.constructor.name;
72
+ if (n === "Map" || n === "Set") return Array.from(n);
73
+ if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);
74
+ }
75
+ var CompareContextState = /*#__PURE__*/ _react.default.createContext(undefined);
76
+ var CompareContextFunctions = /*#__PURE__*/ _react.default.createContext(undefined);
77
+ function CompareContextProvider(param) {
78
+ var children = param.children;
79
+ var ref = _slicedToArray((0, _react).useState([]), 2), itemsToCompare = ref[0], setItemsToCompare = ref[1];
80
+ // notAllowedState is needed in order to trigger rerender in useEffect dependency on the client
81
+ // it allow us to know that we try to add more items than allowed
82
+ var ref1 = _slicedToArray((0, _react).useState(0), 2), notAllowedState = ref1[0], setNotAllowedState = ref1[1];
83
+ var itemAlreadyAdded = function(id) {
84
+ return itemsToCompare.filter(function(i) {
85
+ return i._id === id;
86
+ }).length !== 0;
87
+ };
88
+ var addItemToCompare = function(item, maxItemLength) {
89
+ var alreadyAdded = itemAlreadyAdded(item._id);
90
+ if (alreadyAdded) {
91
+ return;
92
+ }
93
+ if (itemsToCompare.length === maxItemLength) {
94
+ setNotAllowedState(notAllowedState + 1);
95
+ return;
96
+ }
97
+ if (itemsToCompare.length < maxItemLength) {
98
+ itemsToCompare.push(item);
99
+ setNotAllowedState(0);
100
+ setItemsToCompare(itemsToCompare);
101
+ }
102
+ };
103
+ var removeComparedItem = function(id) {
104
+ var filtered = itemsToCompare.filter(function(i) {
105
+ return i._id !== id;
106
+ });
107
+ setItemsToCompare(filtered);
108
+ };
109
+ var removeAllComparedItems = function() {
110
+ return setItemsToCompare([]);
111
+ };
112
+ var notAllowed = function() {
113
+ return notAllowedState;
114
+ };
115
+ var functions = {
116
+ itemAlreadyAdded: itemAlreadyAdded,
117
+ addItemToCompare: addItemToCompare,
118
+ removeComparedItem: removeComparedItem,
119
+ removeAllComparedItems: removeAllComparedItems,
120
+ notAllowed: notAllowed
121
+ };
122
+ return(/*#__PURE__*/ _react.default.createElement(CompareContextState.Provider, {
123
+ value: itemsToCompare
124
+ }, /*#__PURE__*/ _react.default.createElement(CompareContextFunctions.Provider, {
125
+ value: functions
126
+ }, children)));
127
+ }
128
+ function useCompareState() {
129
+ var context = _react.default.useContext(CompareContextState);
130
+ if (context === undefined) {
131
+ throw new Error('CompareContextState must be used within a CompareContextProvider');
132
+ }
133
+ return context;
134
+ }
135
+ function useCompareFunctions() {
136
+ var context = _react.default.useContext(CompareContextFunctions);
137
+ if (context === undefined) {
138
+ throw new Error('CompareContextFunctions must be used within a CompareContextProvider');
139
+ }
140
+ return context;
141
+ }
@@ -0,0 +1,22 @@
1
+ Object.defineProperty(exports, "__esModule", {
2
+ value: true
3
+ });
4
+ Object.defineProperty(exports, "CompareContextProvider", {
5
+ enumerable: true,
6
+ get: function() {
7
+ return _compareContext.CompareContextProvider;
8
+ }
9
+ });
10
+ Object.defineProperty(exports, "useCompareState", {
11
+ enumerable: true,
12
+ get: function() {
13
+ return _compareContext.useCompareState;
14
+ }
15
+ });
16
+ Object.defineProperty(exports, "useCompareFunctions", {
17
+ enumerable: true,
18
+ get: function() {
19
+ return _compareContext.useCompareFunctions;
20
+ }
21
+ });
22
+ var _compareContext = require("./CompareContext");
@@ -35,13 +35,15 @@ var useCheckoutShippingModule = function(orderQuery) {
35
35
  var isEnabled = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : true;
36
36
  var cartData = orderQuery.data;
37
37
  return (0, _react).useMemo(function() {
38
- var ref;
38
+ var ref, ref1;
39
39
  if (!isEnabled) return;
40
40
  var shipping = cartData === null || cartData === void 0 ? void 0 : (ref = cartData.shippings) === null || ref === void 0 ? void 0 : ref[0];
41
41
  return {
42
42
  moduleKey: shipping === null || shipping === void 0 ? void 0 : shipping.moduleKey,
43
43
  moduleData: _objectSpread({}, shipping === null || shipping === void 0 ? void 0 : shipping.moduleData, {
44
- methodKey: shipping === null || shipping === void 0 ? void 0 : shipping.moduleMethodKey
44
+ methodKey: shipping === null || shipping === void 0 ? void 0 : shipping.moduleMethodKey,
45
+ // Special case of warehouse for christian of roma
46
+ isWarehouseShipping: (shipping === null || shipping === void 0 ? void 0 : shipping.moduleKey) === 'PickUpFromStore' && (shipping === null || shipping === void 0 ? void 0 : (ref1 = shipping.merchant) === null || ref1 === void 0 ? void 0 : ref1.resourceKey) === 'christian-of-roma'
45
47
  })
46
48
  };
47
49
  }, [
package/dist/cjs/index.js CHANGED
@@ -1058,6 +1058,18 @@ Object.keys(_types).forEach(function(key) {
1058
1058
  }
1059
1059
  });
1060
1060
  });
1061
+ var _ = _interopRequireWildcard(require("./hooks/CompareContext/"));
1062
+ Object.keys(_).forEach(function(key) {
1063
+ if (key === "default" || key === "__esModule") return;
1064
+ if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
1065
+ if (key in exports && exports[key] === _[key]) return;
1066
+ Object.defineProperty(exports, key, {
1067
+ enumerable: true,
1068
+ get: function() {
1069
+ return _[key];
1070
+ }
1071
+ });
1072
+ });
1061
1073
  var _utils1 = _interopRequireWildcard(require("./utils"));
1062
1074
  Object.keys(_utils1).forEach(function(key) {
1063
1075
  if (key === "default" || key === "__esModule") return;
@@ -1214,15 +1226,15 @@ Object.keys(_misc).forEach(function(key) {
1214
1226
  }
1215
1227
  });
1216
1228
  });
1217
- var _ = _interopRequireWildcard(require("./ssr/"));
1218
- Object.keys(_).forEach(function(key) {
1229
+ var _1 = _interopRequireWildcard(require("./ssr/"));
1230
+ Object.keys(_1).forEach(function(key) {
1219
1231
  if (key === "default" || key === "__esModule") return;
1220
1232
  if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
1221
- if (key in exports && exports[key] === _[key]) return;
1233
+ if (key in exports && exports[key] === _1[key]) return;
1222
1234
  Object.defineProperty(exports, key, {
1223
1235
  enumerable: true,
1224
1236
  get: function() {
1225
- return _[key];
1237
+ return _1[key];
1226
1238
  }
1227
1239
  });
1228
1240
  });
@@ -8,17 +8,18 @@ var _utils = require("../../../utils");
8
8
  var processLoginPayload = function(data) {
9
9
  var anonymous = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : false;
10
10
  var accessTokenExpires = data.expires;
11
- var refreshTokenExpires = data.refreshTokenExpires;
11
+ var _refreshTokenExpires;
12
+ var refreshTokenExpires = (_refreshTokenExpires = data.refreshTokenExpires) !== null && _refreshTokenExpires !== void 0 ? _refreshTokenExpires : accessTokenExpires;
12
13
  (0, _utils).writeToLocalStorage(_wishlistApi.WISHLIST_STORAGE_KEY, data.wishList);
13
14
  (0, _utils).writeToLocalStorage(_myCartApi.BASKET_STORAGE_KEY, data.basket);
14
15
  (0, _utils).setAccessToken(data.accessToken, anonymous, {
15
- expires: (0, _utils).convertDateIntoRemainingDays(new Date(), new Date(accessTokenExpires))
16
+ expires: new Date(accessTokenExpires)
16
17
  });
17
18
  (0, _utils).setExpiryToken(data.expires, {
18
- expires: (0, _utils).convertDateIntoRemainingDays(new Date(), new Date(refreshTokenExpires))
19
+ expires: new Date(refreshTokenExpires)
19
20
  });
20
21
  (0, _utils).setRefreshToken(data.refreshToken, {
21
- expires: (0, _utils).convertDateIntoRemainingDays(new Date(), new Date(refreshTokenExpires))
22
+ expires: new Date(refreshTokenExpires)
22
23
  });
23
24
  !anonymous && (0, _utils).removeAnonToken();
24
25
  };
@@ -410,18 +410,6 @@ Object.keys(_transliterate).forEach(function(key) {
410
410
  }
411
411
  });
412
412
  });
413
- var _convertDateIntoRemainingDays = _interopRequireWildcard(require("./convertDateIntoRemainingDays"));
414
- Object.keys(_convertDateIntoRemainingDays).forEach(function(key) {
415
- if (key === "default" || key === "__esModule") return;
416
- if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
417
- if (key in exports && exports[key] === _convertDateIntoRemainingDays[key]) return;
418
- Object.defineProperty(exports, key, {
419
- enumerable: true,
420
- get: function() {
421
- return _convertDateIntoRemainingDays[key];
422
- }
423
- });
424
- });
425
413
  var _prefetchSDKConfig = _interopRequireWildcard(require("./prefetchSDKConfig"));
426
414
  Object.keys(_prefetchSDKConfig).forEach(function(key) {
427
415
  if (key === "default" || key === "__esModule") return;
@@ -93,7 +93,7 @@ var setAccessToken = function(token, anonymous, options) {
93
93
  };
94
94
  exports.setAccessToken = setAccessToken;
95
95
  var setRefreshToken = function(token, options) {
96
- _jsCookie.default.set(REFRESH_TOKEN_KEY, token, options);
96
+ token && _jsCookie.default.set(REFRESH_TOKEN_KEY, token, options);
97
97
  };
98
98
  exports.setRefreshToken = setRefreshToken;
99
99
  var setExpiryToken = function(timestamp, options) {
@@ -11,7 +11,7 @@ export var purchase = function(order, config) {
11
11
  var isGtagLoaded = Boolean(window.gtag);
12
12
  var hasGoogleId = Boolean((ref8 = config.google) === null || ref8 === void 0 ? void 0 : ref8.analytics);
13
13
  if (isGtagLoaded && hasGoogleId) {
14
- var ref9, ref10, ref11;
14
+ var ref9, ref10, ref11, ref12;
15
15
  var items = ((ref9 = order.lineItems) === null || ref9 === void 0 ? void 0 : ref9.map(function(item, i) {
16
16
  return {
17
17
  id: item.variant.sku,
@@ -19,36 +19,36 @@ export var purchase = function(order, config) {
19
19
  list_name: config.defaultMerchant,
20
20
  list_position: i + 1,
21
21
  quantity: item.quantity,
22
- price: decodePrice(item.totalPrice)
22
+ price: (item === null || item === void 0 ? void 0 : item.totalPrice) && decodePrice(item.totalPrice)
23
23
  };
24
24
  })) || [];
25
- (ref11 = window.gtag) === null || ref11 === void 0 ? void 0 : ref11.call(window, 'event', 'purchase', {
25
+ (ref12 = window.gtag) === null || ref12 === void 0 ? void 0 : ref12.call(window, 'event', 'purchase', {
26
26
  transaction_id: order._id,
27
27
  send_to: (ref10 = config.google) === null || ref10 === void 0 ? void 0 : ref10.analytics,
28
28
  affiliation: config.defaultMerchant,
29
29
  value: decodePrice(order.grandTotalPrice),
30
30
  currency: order.currencyCode,
31
31
  tax: decodePrice(centAmount),
32
- shipping: (order === null || order === void 0 ? void 0 : order.shippings) ? decodePrice(order.shippings[0].price) : 0,
32
+ shipping: (order === null || order === void 0 ? void 0 : order.shippings) ? decodePrice((ref11 = order.shippings[0]) === null || ref11 === void 0 ? void 0 : ref11.price) : 0,
33
33
  items: items
34
34
  });
35
35
  }
36
36
  if (isGtagLoaded && hasGoogleReMarketing) {
37
- var ref12, ref13, ref14, ref15, ref16;
38
- (ref16 = window.gtag) === null || ref16 === void 0 ? void 0 : ref16.call(window, 'event', 'conversion', {
39
- send_to: "".concat((ref12 = config.google) === null || ref12 === void 0 ? void 0 : (ref13 = ref12.reMarketing) === null || ref13 === void 0 ? void 0 : ref13.id, "/").concat((ref14 = config.google) === null || ref14 === void 0 ? void 0 : (ref15 = ref14.reMarketing) === null || ref15 === void 0 ? void 0 : ref15.label),
37
+ var ref13, ref14, ref15, ref16, ref17;
38
+ (ref17 = window.gtag) === null || ref17 === void 0 ? void 0 : ref17.call(window, 'event', 'conversion', {
39
+ send_to: "".concat((ref13 = config.google) === null || ref13 === void 0 ? void 0 : (ref14 = ref13.reMarketing) === null || ref14 === void 0 ? void 0 : ref14.id, "/").concat((ref15 = config.google) === null || ref15 === void 0 ? void 0 : (ref16 = ref15.reMarketing) === null || ref16 === void 0 ? void 0 : ref16.label),
40
40
  value: decodePrice(order.grandTotalPrice),
41
41
  currency: order.currencyCode,
42
42
  transaction_id: order._id
43
43
  });
44
44
  }
45
45
  if (facebookPixelLoaded) {
46
- var ref17, ref18;
47
- (ref18 = window.fbq) === null || ref18 === void 0 ? void 0 : ref18.call(window, 'track', 'Purchase', {
46
+ var ref18, ref19;
47
+ (ref19 = window.fbq) === null || ref19 === void 0 ? void 0 : ref19.call(window, 'track', 'Purchase', {
48
48
  currency: order.currencyCode,
49
49
  value: decodePrice(order.grandTotalPrice),
50
50
  content_type: 'product',
51
- contents: ((ref17 = order.lineItems) === null || ref17 === void 0 ? void 0 : ref17.map(function(product) {
51
+ contents: ((ref18 = order.lineItems) === null || ref18 === void 0 ? void 0 : ref18.map(function(product) {
52
52
  return {
53
53
  id: product.variant.sku,
54
54
  quantity: product.quantity
@@ -95,8 +95,12 @@ export function genericOfficeValidation(param) {
95
95
  }
96
96
  export function pickupFromStoreValidation(param) {
97
97
  var mod = param.mod, errorLabels = param.errorLabels;
98
- var ref;
99
- return !(mod === null || mod === void 0 ? void 0 : (ref = mod.moduleData) === null || ref === void 0 ? void 0 : ref.stockLocation) ? {
98
+ var ref, ref12;
99
+ // Returning undefined means validation is passed
100
+ if (mod === null || mod === void 0 ? void 0 : (ref = mod.moduleData) === null || ref === void 0 ? void 0 : ref.isWarehouseShipping) {
101
+ return undefined;
102
+ }
103
+ return !(mod === null || mod === void 0 ? void 0 : (ref12 = mod.moduleData) === null || ref12 === void 0 ? void 0 : ref12.stockLocation) ? {
100
104
  pickupFromStore: errorLabels.noStoreSelected
101
105
  } : undefined;
102
106
  }
@@ -125,8 +129,8 @@ export function validateShipping(data, mod, errorLabels, validations) {
125
129
  var requiredFields = arguments.length > 4 && arguments[4] !== void 0 ? arguments[4] : defaultRequiredFields, enableNoShippingMethodMode = arguments.length > 5 ? arguments[5] : void 0;
126
130
  var validateErrors = {};
127
131
  var globalErrors = requiredFields.reduce(function(errors, field) {
128
- var ref, ref13;
129
- if (!(data === null || data === void 0 ? void 0 : (ref = data[field]) === null || ref === void 0 ? void 0 : (ref13 = ref.trim) === null || ref13 === void 0 ? void 0 : ref13.call(ref))) {
132
+ var ref, ref14;
133
+ if (!(data === null || data === void 0 ? void 0 : (ref = data[field]) === null || ref === void 0 ? void 0 : (ref14 = ref.trim) === null || ref14 === void 0 ? void 0 : ref14.call(ref))) {
130
134
  return _objectSpread({}, errors, _defineProperty({}, field, errorLabels.fieldIsRequired));
131
135
  }
132
136
  return errors;
@@ -138,13 +142,13 @@ export function validateShipping(data, mod, errorLabels, validations) {
138
142
  globalErrors.phoneNumber = (errorLabels === null || errorLabels === void 0 ? void 0 : errorLabels.invalidPhoneNumber) || '';
139
143
  }
140
144
  if (!enableNoShippingMethodMode) {
141
- var ref14, ref12;
142
- if (!(mod === null || mod === void 0 ? void 0 : mod.moduleKey) || !(mod === null || mod === void 0 ? void 0 : (ref14 = mod.moduleData) === null || ref14 === void 0 ? void 0 : ref14.methodKey)) {
145
+ var ref15, ref13;
146
+ if (!(mod === null || mod === void 0 ? void 0 : mod.moduleKey) || !(mod === null || mod === void 0 ? void 0 : (ref15 = mod.moduleData) === null || ref15 === void 0 ? void 0 : ref15.methodKey)) {
143
147
  return _objectSpread({}, globalErrors, {
144
148
  courier: errorLabels.selectCourier
145
149
  });
146
150
  }
147
- var validate = (ref12 = validations[mod === null || mod === void 0 ? void 0 : mod.moduleKey]) === null || ref12 === void 0 ? void 0 : ref12[mod === null || mod === void 0 ? void 0 : mod.moduleData.methodKey];
151
+ var validate = (ref13 = validations[mod === null || mod === void 0 ? void 0 : mod.moduleKey]) === null || ref13 === void 0 ? void 0 : ref13[mod === null || mod === void 0 ? void 0 : mod.moduleData.methodKey];
148
152
  if (!validate) {
149
153
  throw new Error("Validation for shipping with provider: ".concat(mod === null || mod === void 0 ? void 0 : mod.moduleKey, " and method key: ").concat(mod === null || mod === void 0 ? void 0 : mod.moduleData.methodKey, " not found"));
150
154
  }
@@ -0,0 +1,114 @@
1
+ import React, { useState } from 'react';
2
+ function _arrayLikeToArray(arr, len) {
3
+ if (len == null || len > arr.length) len = arr.length;
4
+ for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i];
5
+ return arr2;
6
+ }
7
+ function _arrayWithHoles(arr) {
8
+ if (Array.isArray(arr)) return arr;
9
+ }
10
+ function _iterableToArrayLimit(arr, i) {
11
+ var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"];
12
+ if (_i == null) return;
13
+ var _arr = [];
14
+ var _n = true;
15
+ var _d = false;
16
+ var _s, _e;
17
+ try {
18
+ for(_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true){
19
+ _arr.push(_s.value);
20
+ if (i && _arr.length === i) break;
21
+ }
22
+ } catch (err) {
23
+ _d = true;
24
+ _e = err;
25
+ } finally{
26
+ try {
27
+ if (!_n && _i["return"] != null) _i["return"]();
28
+ } finally{
29
+ if (_d) throw _e;
30
+ }
31
+ }
32
+ return _arr;
33
+ }
34
+ function _nonIterableRest() {
35
+ throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
36
+ }
37
+ function _slicedToArray(arr, i) {
38
+ return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();
39
+ }
40
+ function _unsupportedIterableToArray(o, minLen) {
41
+ if (!o) return;
42
+ if (typeof o === "string") return _arrayLikeToArray(o, minLen);
43
+ var n = Object.prototype.toString.call(o).slice(8, -1);
44
+ if (n === "Object" && o.constructor) n = o.constructor.name;
45
+ if (n === "Map" || n === "Set") return Array.from(n);
46
+ if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);
47
+ }
48
+ var CompareContextState = /*#__PURE__*/ React.createContext(undefined);
49
+ var CompareContextFunctions = /*#__PURE__*/ React.createContext(undefined);
50
+ export function CompareContextProvider(param) {
51
+ var children = param.children;
52
+ var ref = _slicedToArray(useState([]), 2), itemsToCompare = ref[0], setItemsToCompare = ref[1];
53
+ // notAllowedState is needed in order to trigger rerender in useEffect dependency on the client
54
+ // it allow us to know that we try to add more items than allowed
55
+ var ref1 = _slicedToArray(useState(0), 2), notAllowedState = ref1[0], setNotAllowedState = ref1[1];
56
+ var itemAlreadyAdded = function(id) {
57
+ return itemsToCompare.filter(function(i) {
58
+ return i._id === id;
59
+ }).length !== 0;
60
+ };
61
+ var addItemToCompare = function(item, maxItemLength) {
62
+ var alreadyAdded = itemAlreadyAdded(item._id);
63
+ if (alreadyAdded) {
64
+ return;
65
+ }
66
+ if (itemsToCompare.length === maxItemLength) {
67
+ setNotAllowedState(notAllowedState + 1);
68
+ return;
69
+ }
70
+ if (itemsToCompare.length < maxItemLength) {
71
+ itemsToCompare.push(item);
72
+ setNotAllowedState(0);
73
+ setItemsToCompare(itemsToCompare);
74
+ }
75
+ };
76
+ var removeComparedItem = function(id) {
77
+ var filtered = itemsToCompare.filter(function(i) {
78
+ return i._id !== id;
79
+ });
80
+ setItemsToCompare(filtered);
81
+ };
82
+ var removeAllComparedItems = function() {
83
+ return setItemsToCompare([]);
84
+ };
85
+ var notAllowed = function() {
86
+ return notAllowedState;
87
+ };
88
+ var functions = {
89
+ itemAlreadyAdded: itemAlreadyAdded,
90
+ addItemToCompare: addItemToCompare,
91
+ removeComparedItem: removeComparedItem,
92
+ removeAllComparedItems: removeAllComparedItems,
93
+ notAllowed: notAllowed
94
+ };
95
+ return(/*#__PURE__*/ React.createElement(CompareContextState.Provider, {
96
+ value: itemsToCompare
97
+ }, /*#__PURE__*/ React.createElement(CompareContextFunctions.Provider, {
98
+ value: functions
99
+ }, children)));
100
+ }
101
+ export function useCompareState() {
102
+ var context = React.useContext(CompareContextState);
103
+ if (context === undefined) {
104
+ throw new Error('CompareContextState must be used within a CompareContextProvider');
105
+ }
106
+ return context;
107
+ }
108
+ export function useCompareFunctions() {
109
+ var context = React.useContext(CompareContextFunctions);
110
+ if (context === undefined) {
111
+ throw new Error('CompareContextFunctions must be used within a CompareContextProvider');
112
+ }
113
+ return context;
114
+ }
@@ -0,0 +1 @@
1
+ export { CompareContextProvider, useCompareState, useCompareFunctions } from './CompareContext';
@@ -31,13 +31,15 @@ export var useCheckoutShippingModule = function(orderQuery) {
31
31
  var isEnabled = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : true;
32
32
  var cartData = orderQuery.data;
33
33
  return useMemo(function() {
34
- var ref;
34
+ var ref, ref1;
35
35
  if (!isEnabled) return;
36
36
  var shipping = cartData === null || cartData === void 0 ? void 0 : (ref = cartData.shippings) === null || ref === void 0 ? void 0 : ref[0];
37
37
  return {
38
38
  moduleKey: shipping === null || shipping === void 0 ? void 0 : shipping.moduleKey,
39
39
  moduleData: _objectSpread({}, shipping === null || shipping === void 0 ? void 0 : shipping.moduleData, {
40
- methodKey: shipping === null || shipping === void 0 ? void 0 : shipping.moduleMethodKey
40
+ methodKey: shipping === null || shipping === void 0 ? void 0 : shipping.moduleMethodKey,
41
+ // Special case of warehouse for christian of roma
42
+ isWarehouseShipping: (shipping === null || shipping === void 0 ? void 0 : shipping.moduleKey) === 'PickUpFromStore' && (shipping === null || shipping === void 0 ? void 0 : (ref1 = shipping.merchant) === null || ref1 === void 0 ? void 0 : ref1.resourceKey) === 'christian-of-roma'
41
43
  })
42
44
  };
43
45
  }, [
package/dist/esm/index.js CHANGED
@@ -93,6 +93,7 @@ export * from './hooks/useProgressBar';
93
93
  export * from './hooks/useCatalogDiscounts';
94
94
  export * from './hooks/useLocalRating';
95
95
  export * from './hooks/useProductVariants/types';
96
+ export * from './hooks/CompareContext/';
96
97
  // Utils
97
98
  export * from './utils';
98
99
  export * from './types';
@@ -1,20 +1,21 @@
1
1
  import { WISHLIST_STORAGE_KEY } from '../../../api/wishlistApi';
2
2
  import { BASKET_STORAGE_KEY } from '../../../api/myCartApi';
3
- import { writeToLocalStorage, setAccessToken, setExpiryToken, setRefreshToken, removeAnonToken, convertDateIntoRemainingDays } from '../../../utils';
3
+ import { removeAnonToken, setAccessToken, setExpiryToken, setRefreshToken, writeToLocalStorage } from '../../../utils';
4
4
  export var processLoginPayload = function(data) {
5
5
  var anonymous = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : false;
6
6
  var accessTokenExpires = data.expires;
7
- var refreshTokenExpires = data.refreshTokenExpires;
7
+ var _refreshTokenExpires;
8
+ var refreshTokenExpires = (_refreshTokenExpires = data.refreshTokenExpires) !== null && _refreshTokenExpires !== void 0 ? _refreshTokenExpires : accessTokenExpires;
8
9
  writeToLocalStorage(WISHLIST_STORAGE_KEY, data.wishList);
9
10
  writeToLocalStorage(BASKET_STORAGE_KEY, data.basket);
10
11
  setAccessToken(data.accessToken, anonymous, {
11
- expires: convertDateIntoRemainingDays(new Date(), new Date(accessTokenExpires))
12
+ expires: new Date(accessTokenExpires)
12
13
  });
13
14
  setExpiryToken(data.expires, {
14
- expires: convertDateIntoRemainingDays(new Date(), new Date(refreshTokenExpires))
15
+ expires: new Date(refreshTokenExpires)
15
16
  });
16
17
  setRefreshToken(data.refreshToken, {
17
- expires: convertDateIntoRemainingDays(new Date(), new Date(refreshTokenExpires))
18
+ expires: new Date(refreshTokenExpires)
18
19
  });
19
20
  !anonymous && removeAnonToken();
20
21
  };
@@ -47,5 +47,4 @@ export * from './getDistance';
47
47
  export * from './getPagination';
48
48
  export * from './validations';
49
49
  export * from './transliterate';
50
- export * from './convertDateIntoRemainingDays';
51
50
  export * from './prefetchSDKConfig';
@@ -78,7 +78,7 @@ export var setAccessToken = function(token, anonymous, options) {
78
78
  Cookies.set("".concat(tokenIdentifier), token, options);
79
79
  };
80
80
  export var setRefreshToken = function(token, options) {
81
- Cookies.set(REFRESH_TOKEN_KEY, token, options);
81
+ token && Cookies.set(REFRESH_TOKEN_KEY, token, options);
82
82
  };
83
83
  export var setExpiryToken = function(timestamp, options) {
84
84
  Cookies.set(TOKEN_EXPIRY_KEY, timestamp.toString(), options);
@@ -0,0 +1,16 @@
1
+ import type { SearchResultDTO, LineItemDTO } from '@sentecacommerce/sdk';
2
+ declare type CompareStateItemType = SearchResultDTO | LineItemDTO;
3
+ declare type CompareStateItemsType = SearchResultDTO[] | LineItemDTO[];
4
+ declare type CompareContextType = {
5
+ itemAlreadyAdded: (id: string) => boolean;
6
+ addItemToCompare: (item: CompareStateItemType, maxItemLength: number) => void;
7
+ removeComparedItem: (id: string) => void;
8
+ removeAllComparedItems: () => void;
9
+ notAllowed: () => number;
10
+ };
11
+ export declare function CompareContextProvider({ children }: {
12
+ children: any;
13
+ }): JSX.Element;
14
+ export declare function useCompareState(): CompareStateItemsType;
15
+ export declare function useCompareFunctions(): CompareContextType;
16
+ export {};
@@ -0,0 +1 @@
1
+ export { CompareContextProvider, useCompareState, useCompareFunctions, } from './CompareContext';
@@ -86,6 +86,7 @@ export * from './hooks/useProgressBar';
86
86
  export * from './hooks/useCatalogDiscounts';
87
87
  export * from './hooks/useLocalRating';
88
88
  export * from './hooks/useProductVariants/types';
89
+ export * from './hooks/CompareContext/';
89
90
  export * from './utils';
90
91
  export * from './types';
91
92
  export * from './seo';
@@ -47,5 +47,4 @@ export * from './getDistance';
47
47
  export * from './getPagination';
48
48
  export * from './validations';
49
49
  export * from './transliterate';
50
- export * from './convertDateIntoRemainingDays';
51
50
  export * from './prefetchSDKConfig';
@@ -1,17 +1,12 @@
1
+ import Cookies from 'js-cookie';
1
2
  export declare const AUTH_TOKEN_KEY = "token";
2
3
  export declare const ANONYMOUS_TOKEN_KEY = "anonymousToken";
3
4
  export declare const TOKEN_EXPIRY_KEY = "tokenExpiry";
4
5
  export declare const REFRESH_TOKEN_KEY = "refreshToken";
5
6
  export declare const isTokenExpired: () => boolean;
6
- export declare const setAccessToken: (token: string, anonymous: boolean, options?: {
7
- expires: number;
8
- } | undefined) => void;
9
- export declare const setRefreshToken: (token: string, options?: {
10
- expires: number;
11
- } | undefined) => void;
12
- export declare const setExpiryToken: (timestamp: number, options?: {
13
- expires: number;
14
- } | undefined) => void;
7
+ export declare const setAccessToken: (token: string, anonymous: boolean, options?: Cookies.CookieAttributes | undefined) => void;
8
+ export declare const setRefreshToken: (token: string | undefined, options?: Cookies.CookieAttributes | undefined) => void;
9
+ export declare const setExpiryToken: (timestamp: number, options?: Cookies.CookieAttributes | undefined) => void;
15
10
  export declare const getExpiryToken: () => string | undefined;
16
11
  export declare const removeExpiryToken: () => void;
17
12
  export declare const getRefreshToken: () => string | undefined;
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@sentecacommerce-theme/lib",
3
3
  "sideEffects": false,
4
- "version": "0.14.8",
4
+ "version": "0.14.11",
5
5
  "main": "dist/cjs/index.js",
6
6
  "module": "dist/esm/index.js",
7
7
  "types": "dist/types/index.d.ts",
@@ -31,13 +31,13 @@
31
31
  "watch:cjs": "swc src --out-dir dist/cjs -w",
32
32
  "watch:esm": "swc src --out-dir dist/esm --no-swcrc -w"
33
33
  },
34
- "gitHead": "556a26ab90b2169a12b698de7a8117efa6069664",
34
+ "gitHead": "9f85ecb7a9f320e4ba8a0d73bd34747c45e9ec33",
35
35
  "peerDependencies": {
36
36
  "react-query": "^2.26.2"
37
37
  },
38
38
  "dependencies": {
39
- "@sentecacommerce-theme/base": "^0.14.8",
40
- "@sentecacommerce-theme/cms": "^0.14.8",
39
+ "@sentecacommerce-theme/base": "^0.14.11",
40
+ "@sentecacommerce-theme/cms": "^0.14.11",
41
41
  "@sentecacommerce/sdk": "2.0.175",
42
42
  "body-scroll-lock": "^3.1.5",
43
43
  "copy-to-clipboard": "^3.3.1",
@@ -1,10 +0,0 @@
1
- Object.defineProperty(exports, "__esModule", {
2
- value: true
3
- });
4
- exports.convertDateIntoRemainingDays = void 0;
5
- var convertDateIntoRemainingDays = function(date1, date2) {
6
- var differenceInTime = date2.getTime() - date1.getTime();
7
- var differenceInDays = differenceInTime / (1000 * 3600 * 24);
8
- return Math.floor(differenceInDays);
9
- };
10
- exports.convertDateIntoRemainingDays = convertDateIntoRemainingDays;
@@ -1,5 +0,0 @@
1
- export var convertDateIntoRemainingDays = function(date1, date2) {
2
- var differenceInTime = date2.getTime() - date1.getTime();
3
- var differenceInDays = differenceInTime / (1000 * 3600 * 24);
4
- return Math.floor(differenceInDays);
5
- };
@@ -1 +0,0 @@
1
- export declare const convertDateIntoRemainingDays: (date1: Date, date2: Date) => number;