@sentecacommerce-theme/lib 0.13.5-alpha.6 → 0.13.7-alpha.5

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 (158) hide show
  1. package/dist/cjs/analytics/addToCart.js +0 -1
  2. package/dist/cjs/analytics/initiateCheckout.js +0 -1
  3. package/dist/cjs/analytics/viewContent.js +0 -1
  4. package/dist/cjs/api/myCartApi/index.js +2 -1
  5. package/dist/cjs/basket/api/index.js +37 -0
  6. package/dist/cjs/basket/api/mutations/index.js +37 -0
  7. package/dist/cjs/basket/api/mutations/useReplaceBasketMutation.js +58 -0
  8. package/dist/cjs/basket/hooks/index.js +52 -0
  9. package/dist/cjs/basket/hooks/useBasketCrossSaleItems.js +99 -0
  10. package/dist/cjs/basket/hooks/useReplaceBasket.js +10 -0
  11. package/dist/cjs/basket/index.js +37 -0
  12. package/dist/cjs/checkout/api/keys.js +8 -1
  13. package/dist/cjs/checkout/api/queries/index.js +15 -0
  14. package/dist/cjs/checkout/api/queries/useBnpCalculateForCartQuery.js +60 -0
  15. package/dist/cjs/checkout/hooks/index.js +15 -0
  16. package/dist/cjs/checkout/hooks/useBnpCalculateForCart.js +120 -0
  17. package/dist/cjs/components/Portal/index.js +1 -1
  18. package/dist/cjs/contexts/CheckoutForm/hooks/usePayment/index.js +7 -2
  19. package/dist/cjs/contexts/CheckoutForm/index.js +5 -3
  20. package/dist/cjs/hooks/useLineItem/index.js +7 -0
  21. package/dist/cjs/hooks/useProduct/index.js +26 -5
  22. package/dist/cjs/hooks/useProduct/utils/index.js +14 -1
  23. package/dist/cjs/hooks/useProgressBar/hooks/useGetSetState.js +1 -24
  24. package/dist/cjs/hooks/useVouchers/index.js +1 -2
  25. package/dist/cjs/index.js +24 -0
  26. package/dist/cjs/listing/api/queries/useAggregateQuery.js +40 -5
  27. package/dist/cjs/listing/hooks/useListingConfig.js +2 -1
  28. package/dist/cjs/listing/hooks/useListingFilters.js +2 -2
  29. package/dist/cjs/listing/types.js +8 -1
  30. package/dist/cjs/listing/utils/buildCategoryQuery.js +11 -6
  31. package/dist/cjs/navigation/components/SearchBox/Components/Container/index.js +1 -1
  32. package/dist/cjs/navigation/components/SearchBox/Components/EmptyBox/index.js +19 -18
  33. package/dist/cjs/navigation/components/SearchBox/Components/Products/Components/ProductCard/index.js +1 -1
  34. package/dist/cjs/navigation/components/SearchBox/Components/Products/index.js +2 -2
  35. package/dist/cjs/navigation/components/SearchBox/Components/RecentSearches/index.js +1 -1
  36. package/dist/cjs/navigation/components/SearchBox/index.js +11 -11
  37. package/dist/cjs/order/api/mutations/index.js +15 -0
  38. package/dist/cjs/order/api/mutations/useUpdateOrderCustomFieldMutation.js +15 -0
  39. package/dist/cjs/order/hooks/index.js +15 -0
  40. package/dist/cjs/order/hooks/useUpdateOrderCustomField.js +9 -0
  41. package/dist/cjs/product/api/keys.js +11 -0
  42. package/dist/cjs/product/api/queries/index.js +37 -0
  43. package/dist/cjs/product/api/queries/useBnpOffersQuery.js +64 -0
  44. package/dist/cjs/product/hooks/index.js +37 -0
  45. package/dist/cjs/product/hooks/useBnpOffers.js +112 -0
  46. package/dist/cjs/product/index.js +15 -0
  47. package/dist/cjs/user/api/queries/index.js +15 -0
  48. package/dist/cjs/user/api/queries/useGetMyLoyaltyCardQuery.js +21 -0
  49. package/dist/cjs/user/api/utils/getUserToken.js +16 -0
  50. package/dist/cjs/user/api/utils/index.js +12 -0
  51. package/dist/cjs/user/hooks/index.js +24 -0
  52. package/dist/cjs/user/hooks/useGetMyLoyaltyCard.js +9 -0
  53. package/dist/cjs/user/hooks/useGetUserToken.js +15 -0
  54. package/dist/esm/analytics/Pixel/mainScript.js +0 -1
  55. package/dist/esm/analytics/addToCart.js +0 -1
  56. package/dist/esm/analytics/initiateCheckout.js +0 -1
  57. package/dist/esm/analytics/pageView.js +1 -1
  58. package/dist/esm/analytics/viewContent.js +0 -1
  59. package/dist/esm/api/myCartApi/index.js +2 -1
  60. package/dist/esm/basket/api/index.js +1 -0
  61. package/dist/esm/basket/api/mutations/index.js +1 -0
  62. package/dist/esm/basket/api/mutations/useReplaceBasketMutation.js +48 -0
  63. package/dist/esm/basket/hooks/index.js +2 -0
  64. package/dist/esm/basket/hooks/useBasketCrossSaleItems.js +67 -0
  65. package/dist/esm/basket/hooks/useReplaceBasket.js +2 -0
  66. package/dist/esm/basket/index.js +1 -0
  67. package/dist/esm/checkout/api/keys.js +6 -0
  68. package/dist/esm/checkout/api/queries/index.js +1 -0
  69. package/dist/esm/checkout/api/queries/useBnpCalculateForCartQuery.js +50 -0
  70. package/dist/esm/checkout/hooks/index.js +1 -0
  71. package/dist/esm/checkout/hooks/useBnpCalculateForCart.js +92 -0
  72. package/dist/esm/components/GoogleOneTap/index.js +1 -1
  73. package/dist/esm/components/Portal/index.js +1 -1
  74. package/dist/esm/contexts/CheckoutForm/hooks/usePayment/index.js +7 -2
  75. package/dist/esm/contexts/CheckoutForm/index.js +5 -3
  76. package/dist/esm/hooks/useLineItem/index.js +2 -0
  77. package/dist/esm/hooks/useProduct/index.js +27 -6
  78. package/dist/esm/hooks/useProduct/utils/index.js +13 -0
  79. package/dist/esm/hooks/useProgressBar/hooks/useGetSetState.js +1 -1
  80. package/dist/esm/hooks/useVouchers/index.js +1 -2
  81. package/dist/esm/index.js +4 -0
  82. package/dist/esm/listing/api/queries/useAggregateQuery.js +40 -5
  83. package/dist/esm/listing/hooks/useListingConfig.js +2 -1
  84. package/dist/esm/listing/hooks/useListingFilters.js +2 -2
  85. package/dist/esm/listing/types.js +7 -0
  86. package/dist/esm/listing/utils/buildCategoryQuery.js +11 -6
  87. package/dist/esm/navigation/components/SearchBox/Components/Container/index.js +1 -1
  88. package/dist/esm/navigation/components/SearchBox/Components/EmptyBox/index.js +19 -18
  89. package/dist/esm/navigation/components/SearchBox/Components/Products/Components/ProductCard/index.js +1 -1
  90. package/dist/esm/navigation/components/SearchBox/Components/Products/index.js +2 -2
  91. package/dist/esm/navigation/components/SearchBox/Components/RecentSearches/index.js +1 -1
  92. package/dist/esm/navigation/components/SearchBox/index.js +11 -11
  93. package/dist/esm/order/api/mutations/index.js +1 -0
  94. package/dist/esm/order/api/mutations/useUpdateOrderCustomFieldMutation.js +10 -0
  95. package/dist/esm/order/hooks/index.js +1 -0
  96. package/dist/esm/order/hooks/useUpdateOrderCustomField.js +4 -0
  97. package/dist/esm/product/api/keys.js +6 -0
  98. package/dist/esm/product/api/queries/index.js +1 -0
  99. package/dist/esm/product/api/queries/useBnpOffersQuery.js +54 -0
  100. package/dist/esm/product/hooks/index.js +1 -0
  101. package/dist/esm/product/hooks/useBnpOffers.js +84 -0
  102. package/dist/esm/product/index.js +1 -0
  103. package/dist/esm/user/api/queries/index.js +1 -0
  104. package/dist/esm/user/api/queries/useGetMyLoyaltyCardQuery.js +16 -0
  105. package/dist/esm/user/api/utils/getUserToken.js +6 -0
  106. package/dist/esm/user/api/utils/index.js +1 -0
  107. package/dist/esm/user/hooks/index.js +2 -0
  108. package/dist/esm/user/hooks/useGetMyLoyaltyCard.js +4 -0
  109. package/dist/esm/user/hooks/useGetUserToken.js +5 -0
  110. package/dist/types/api/myCartApi/index.d.ts +1 -0
  111. package/dist/types/basket/api/index.d.ts +1 -0
  112. package/dist/types/basket/api/mutations/index.d.ts +1 -0
  113. package/dist/types/basket/api/mutations/useReplaceBasketMutation.d.ts +2 -0
  114. package/dist/types/basket/hooks/index.d.ts +2 -0
  115. package/dist/types/basket/hooks/useBasketCrossSaleItems.d.ts +9 -0
  116. package/dist/types/basket/hooks/useReplaceBasket.d.ts +2 -0
  117. package/dist/types/basket/index.d.ts +1 -0
  118. package/dist/types/checkout/api/keys.d.ts +1 -0
  119. package/dist/types/checkout/api/queries/index.d.ts +1 -0
  120. package/dist/types/checkout/api/queries/useBnpCalculateForCartQuery.d.ts +4 -0
  121. package/dist/types/checkout/hooks/index.d.ts +1 -0
  122. package/dist/types/checkout/hooks/useBnpCalculateForCart.d.ts +39 -0
  123. package/dist/types/contexts/CheckoutForm/hooks/usePayment/index.d.ts +2 -0
  124. package/dist/types/contexts/CheckoutForm/index.d.ts +2 -1
  125. package/dist/types/hooks/basket-hooks/useBasketItemList/index.d.ts +1 -0
  126. package/dist/types/hooks/order-hooks/api/queries/useOrderGetPaymentMethodQuery.d.ts +1 -16
  127. package/dist/types/hooks/order-hooks/useReferralOrders/index.d.ts +1 -0
  128. package/dist/types/hooks/useLineItem/index.d.ts +2 -2
  129. package/dist/types/hooks/useProduct/index.d.ts +1 -0
  130. package/dist/types/hooks/useProduct/utils/index.d.ts +1 -0
  131. package/dist/types/index.d.ts +3 -0
  132. package/dist/types/listing/api/queries/useAggregateQuery.d.ts +4 -3
  133. package/dist/types/listing/types.d.ts +5 -0
  134. package/dist/types/navigation/components/SearchBox/Components/Container/index.d.ts +10 -9
  135. package/dist/types/navigation/components/SearchBox/Components/EmptyBox/index.d.ts +22 -21
  136. package/dist/types/navigation/components/SearchBox/Components/Products/Components/ProductCard/index.d.ts +8 -7
  137. package/dist/types/navigation/components/SearchBox/Components/Products/index.d.ts +9 -8
  138. package/dist/types/navigation/components/SearchBox/index.d.ts +31 -30
  139. package/dist/types/order/api/mutations/index.d.ts +1 -0
  140. package/dist/types/order/api/mutations/useUpdateCustomLineItemMutation.d.ts +2 -5
  141. package/dist/types/order/api/mutations/useUpdateOrderCustomFieldMutation.d.ts +9 -0
  142. package/dist/types/order/hooks/index.d.ts +1 -0
  143. package/dist/types/order/hooks/useUpdateCustomLineItem.d.ts +2 -2
  144. package/dist/types/order/hooks/useUpdateOrderCustomField.d.ts +2 -0
  145. package/dist/types/product/api/keys.d.ts +1 -0
  146. package/dist/types/product/api/queries/index.d.ts +1 -0
  147. package/dist/types/product/api/queries/useBnpOffersQuery.d.ts +5 -0
  148. package/dist/types/product/hooks/index.d.ts +1 -0
  149. package/dist/types/product/hooks/useBnpOffers.d.ts +37 -0
  150. package/dist/types/product/index.d.ts +1 -0
  151. package/dist/types/user/api/queries/index.d.ts +1 -0
  152. package/dist/types/user/api/queries/useGetMyLoyaltyCardQuery.d.ts +5 -0
  153. package/dist/types/user/api/utils/getUserToken.d.ts +1 -0
  154. package/dist/types/user/api/utils/index.d.ts +1 -0
  155. package/dist/types/user/hooks/index.d.ts +2 -0
  156. package/dist/types/user/hooks/useGetMyLoyaltyCard.d.ts +2 -0
  157. package/dist/types/user/hooks/useGetUserToken.d.ts +1 -0
  158. package/package.json +4 -3
@@ -0,0 +1,67 @@
1
+ import regeneratorRuntime from "regenerator-runtime";
2
+ import React, { useMemo } from 'react';
3
+ import { useQuery } from 'react-query';
4
+ import { MyCartGetCrossSaleProducts } from '@sentecacommerce/sdk';
5
+ import { getTranslatableField } from '../../index';
6
+ import { myCartCacheKeys } from '../../index';
7
+ function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {
8
+ try {
9
+ var info = gen[key](arg);
10
+ var value = info.value;
11
+ } catch (error) {
12
+ reject(error);
13
+ return;
14
+ }
15
+ if (info.done) {
16
+ resolve(value);
17
+ } else {
18
+ Promise.resolve(value).then(_next, _throw);
19
+ }
20
+ }
21
+ function _asyncToGenerator(fn) {
22
+ return function() {
23
+ var self = this, args = arguments;
24
+ return new Promise(function(resolve, reject) {
25
+ var gen = fn.apply(self, args);
26
+ function _next(value) {
27
+ asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value);
28
+ }
29
+ function _throw(err) {
30
+ asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err);
31
+ }
32
+ _next(undefined);
33
+ });
34
+ };
35
+ }
36
+ export var useBasketCrossSaleItems = function() {
37
+ var crossSaleProducts = useQuery(myCartCacheKeys.useGetCrossSaleItems, _asyncToGenerator(regeneratorRuntime.mark(function _callee() {
38
+ return regeneratorRuntime.wrap(function _callee$(_ctx) {
39
+ while(1)switch(_ctx.prev = _ctx.next){
40
+ case 0:
41
+ _ctx.next = 2;
42
+ return MyCartGetCrossSaleProducts();
43
+ case 2:
44
+ return _ctx.abrupt("return", _ctx.sent);
45
+ case 3:
46
+ case "end":
47
+ return _ctx.stop();
48
+ }
49
+ }, _callee);
50
+ })));
51
+ return useMemo(function() {
52
+ var ref;
53
+ return crossSaleProducts === null || crossSaleProducts === void 0 ? void 0 : (ref = crossSaleProducts.data) === null || ref === void 0 ? void 0 : ref.map(function(product) {
54
+ return {
55
+ name: getTranslatableField(product.name),
56
+ description: getTranslatableField(product.description),
57
+ slug: getTranslatableField(product.slug),
58
+ attributeRules: product.attributeRules,
59
+ attributes: product.attributes,
60
+ _id: product._id,
61
+ variants: product.variants
62
+ };
63
+ });
64
+ }, [
65
+ crossSaleProducts === null || crossSaleProducts === void 0 ? void 0 : crossSaleProducts.data
66
+ ]);
67
+ };
@@ -0,0 +1,2 @@
1
+ import { useReplaceBasketMutation } from '../api';
2
+ export { useReplaceBasketMutation as useReplaceBasket };
@@ -0,0 +1 @@
1
+ export * from './hooks';
@@ -5,3 +5,9 @@ export var CheckoutQueryKeysEnum;
5
5
  export var getVerifyBoricaResponseKey = function(order) {
6
6
  return "Borica Response for Order: ".concat(order);
7
7
  };
8
+ export var getBnpLoanCalculatorKey = function(preferredInstallmentCentAmount) {
9
+ return [
10
+ 'bnp-loan-calculator',
11
+ preferredInstallmentCentAmount
12
+ ];
13
+ };
@@ -1 +1,2 @@
1
1
  export * from './useVerifyBoricaResponseQuery';
2
+ export * from './useBnpCalculateForCartQuery';
@@ -0,0 +1,50 @@
1
+ import regeneratorRuntime from "regenerator-runtime";
2
+ import React from 'react';
3
+ import { useQuery } from 'react-query';
4
+ import { MyPaymentsBnpCalculateLoanOrder } from '@sentecacommerce/sdk';
5
+ import { getBnpLoanCalculatorKey } from '../keys';
6
+ function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {
7
+ try {
8
+ var info = gen[key](arg);
9
+ var value = info.value;
10
+ } catch (error) {
11
+ reject(error);
12
+ return;
13
+ }
14
+ if (info.done) {
15
+ resolve(value);
16
+ } else {
17
+ Promise.resolve(value).then(_next, _throw);
18
+ }
19
+ }
20
+ function _asyncToGenerator(fn) {
21
+ return function() {
22
+ var self = this, args = arguments;
23
+ return new Promise(function(resolve, reject) {
24
+ var gen = fn.apply(self, args);
25
+ function _next(value) {
26
+ asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value);
27
+ }
28
+ function _throw(err) {
29
+ asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err);
30
+ }
31
+ _next(undefined);
32
+ });
33
+ };
34
+ }
35
+ export var useBnpCalculateForCartQuery = function(props) {
36
+ return useQuery(getBnpLoanCalculatorKey(props.preferredInstallmentCentAmount), _asyncToGenerator(regeneratorRuntime.mark(function _callee() {
37
+ return regeneratorRuntime.wrap(function _callee$(_ctx) {
38
+ while(1)switch(_ctx.prev = _ctx.next){
39
+ case 0:
40
+ _ctx.next = 2;
41
+ return MyPaymentsBnpCalculateLoanOrder(props);
42
+ case 2:
43
+ return _ctx.abrupt("return", _ctx.sent);
44
+ case 3:
45
+ case "end":
46
+ return _ctx.stop();
47
+ }
48
+ }, _callee);
49
+ })));
50
+ };
@@ -1 +1,2 @@
1
1
  export * from './useVerifyBoricaResponse';
2
+ export * from './useBnpCalculateForCart';
@@ -0,0 +1,92 @@
1
+ import React, { useMemo } from 'react';
2
+ import { useBnpCalculateForCartQuery } from '../api';
3
+ import { decodePrice, formatAsCurrency, useConfigState } from '../../index';
4
+ function _defineProperty(obj, key, value) {
5
+ if (key in obj) {
6
+ Object.defineProperty(obj, key, {
7
+ value: value,
8
+ enumerable: true,
9
+ configurable: true,
10
+ writable: true
11
+ });
12
+ } else {
13
+ obj[key] = value;
14
+ }
15
+ return obj;
16
+ }
17
+ function _objectSpread(target) {
18
+ for(var i = 1; i < arguments.length; i++){
19
+ var source = arguments[i] != null ? arguments[i] : {
20
+ };
21
+ var ownKeys = Object.keys(source);
22
+ if (typeof Object.getOwnPropertySymbols === "function") {
23
+ ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function(sym) {
24
+ return Object.getOwnPropertyDescriptor(source, sym).enumerable;
25
+ }));
26
+ }
27
+ ownKeys.forEach(function(key) {
28
+ _defineProperty(target, key, source[key]);
29
+ });
30
+ }
31
+ return target;
32
+ }
33
+ export var useBnpCalculateForCart = function(props) {
34
+ var ref8, ref1, ref2, ref3;
35
+ var ref4 = props !== null && props !== void 0 ? props : {
36
+ }, _preferredInstallmentCentAmount = ref4.preferredInstallmentCentAmount, preferredInstallmentCentAmount = _preferredInstallmentCentAmount === void 0 ? 0 : _preferredInstallmentCentAmount, _downPaymentCentAmount = ref4.downPaymentCentAmount, downPaymentCentAmount = _downPaymentCentAmount === void 0 ? 0 : _downPaymentCentAmount;
37
+ var response = useBnpCalculateForCartQuery({
38
+ preferredInstallmentCentAmount: preferredInstallmentCentAmount,
39
+ downPaymentCentAmount: downPaymentCentAmount
40
+ });
41
+ var configLocale = (ref8 = useConfigState()) === null || ref8 === void 0 ? void 0 : (ref1 = ref8.price) === null || ref1 === void 0 ? void 0 : ref1.locale;
42
+ return useMemo(function() {
43
+ var ref, ref5, ref6, ref7;
44
+ return _objectSpread({
45
+ }, response, {
46
+ data: _objectSpread({
47
+ }, response === null || response === void 0 ? void 0 : (ref = response.data) === null || ref === void 0 ? void 0 : ref[0], {
48
+ offers: response === null || response === void 0 ? void 0 : (ref5 = response.data) === null || ref5 === void 0 ? void 0 : (ref6 = ref5[0]) === null || ref6 === void 0 ? void 0 : (ref7 = ref6.offers) === null || ref7 === void 0 ? void 0 : ref7.map(function(offer) {
49
+ var _totalRepaymentAmount = decodePrice(offer.totalRepaymentAmount);
50
+ var _correctDownPaymentAmount = decodePrice(offer.correctDownPaymentAmount);
51
+ var _installmentAmount = decodePrice(offer.installmentAmount);
52
+ var _processingFeeAmount = decodePrice(offer.processingFeeAmount);
53
+ var totalRepaymentAmount = formatAsCurrency({
54
+ price: _totalRepaymentAmount,
55
+ precision: offer.totalRepaymentAmount.fractionDigits,
56
+ currency: offer.totalRepaymentAmount.currencyCode,
57
+ locale: configLocale || 'en'
58
+ });
59
+ var correctDownPaymentAmount = formatAsCurrency({
60
+ price: _correctDownPaymentAmount,
61
+ precision: offer.correctDownPaymentAmount.fractionDigits,
62
+ currency: offer.correctDownPaymentAmount.currencyCode,
63
+ locale: configLocale || 'en'
64
+ });
65
+ var installmentAmount = formatAsCurrency({
66
+ price: _installmentAmount,
67
+ precision: offer.installmentAmount.fractionDigits,
68
+ currency: offer.installmentAmount.currencyCode,
69
+ locale: configLocale || 'en'
70
+ });
71
+ var processingFeeAmount = formatAsCurrency({
72
+ price: _processingFeeAmount,
73
+ precision: offer.processingFeeAmount.fractionDigits,
74
+ currency: offer.processingFeeAmount.currencyCode,
75
+ locale: configLocale || 'en'
76
+ });
77
+ return _objectSpread({
78
+ }, offer, {
79
+ totalRepaymentAmount: totalRepaymentAmount,
80
+ correctDownPaymentAmount: correctDownPaymentAmount,
81
+ installmentAmount: installmentAmount,
82
+ processingFeeAmount: processingFeeAmount
83
+ });
84
+ }).sort(function(offer, offer2) {
85
+ return Number(offer.maturity) - Number(offer2.maturity);
86
+ })
87
+ })
88
+ });
89
+ }, [
90
+ response === null || response === void 0 ? void 0 : (ref2 = response.data) === null || ref2 === void 0 ? void 0 : (ref3 = ref2[0]) === null || ref3 === void 0 ? void 0 : ref3.offers
91
+ ]);
92
+ };
@@ -1,5 +1,5 @@
1
1
  import regeneratorRuntime from "regenerator-runtime";
2
- /* eslint-disable @typescript-eslint/camelcase */ import React, { useCallback } from 'react';
2
+ import React, { useCallback } from 'react';
3
3
  import Cookies from 'js-cookie';
4
4
  import { useLoginGoogle } from '../..';
5
5
  import { ExternalScript } from '../ExternalScript';
@@ -14,7 +14,7 @@ var Portal = function(param) {
14
14
  // In that case, it's important to append to the correct document element.
15
15
  var ownerDocument = mountNode.current.ownerDocument;
16
16
  portalNode.current = ownerDocument === null || ownerDocument === void 0 ? void 0 : ownerDocument.createElement(type);
17
- ownerDocument.body.appendChild(portalNode.current);
17
+ ownerDocument === null || ownerDocument === void 0 ? void 0 : ownerDocument.body.appendChild(portalNode.current);
18
18
  forceUpdate();
19
19
  return function() {
20
20
  if (portalNode.current && portalNode.current.ownerDocument) {
@@ -35,6 +35,8 @@ function _slicedToArray(arr, i) {
35
35
  export var usePayment = function(param) {
36
36
  var orderQuery = param.orderQuery, errorLabels = param.errorLabels, enabled = param.enabled;
37
37
  var ref = _slicedToArray(useState(false), 2), isPaymentSubmitting = ref[0], setIsPaymentSubmitting = ref[1];
38
+ var ref1 = _slicedToArray(useState({
39
+ }), 2), loanInfo = ref1[0], setLoanInfo = ref1[1];
38
40
  var paymentMethods = useCheckoutPayment({
39
41
  query: orderQuery,
40
42
  enabled: enabled
@@ -46,11 +48,14 @@ export var usePayment = function(param) {
46
48
  errors: isPaymentSubmitting ? paymentErrors : null,
47
49
  isValid: !paymentErrors,
48
50
  updateIsSubmitting: setIsPaymentSubmitting,
49
- paymentMethods: paymentMethods
51
+ updateLoanInfo: setLoanInfo,
52
+ paymentMethods: paymentMethods,
53
+ loanInfo: loanInfo
50
54
  };
51
55
  }, [
52
56
  paymentMethods,
53
57
  paymentErrors,
54
- isPaymentSubmitting
58
+ isPaymentSubmitting,
59
+ loanInfo
55
60
  ]);
56
61
  };
@@ -109,9 +109,10 @@ export function CheckoutFormContextProvider(param) {
109
109
  'email',
110
110
  'phoneNumber',
111
111
  ] : _requiredFieldsOnShippingStep, _requiredFieldsOnBillingAddressStep = param.requiredFieldsOnBillingAddressStep, requiredFieldsOnBillingAddressStep = _requiredFieldsOnBillingAddressStep === void 0 ? [
112
- 'city',
113
- 'postalCode',
114
- 'streetName'
112
+ 'vatId',
113
+ 'companyId',
114
+ 'companyPerson',
115
+ 'companyName',
115
116
  ] : _requiredFieldsOnBillingAddressStep, _enableNoShippingMethodMode = param.enableNoShippingMethodMode, enableNoShippingMethodMode = _enableNoShippingMethodMode === void 0 ? false : _enableNoShippingMethodMode, _disablePaymentRedirects = param.disablePaymentRedirects, disablePaymentRedirects = _disablePaymentRedirects === void 0 ? false : _disablePaymentRedirects;
116
117
  var orderQuery = myCartApi.useGet();
117
118
  var ref4 = _slicedToArray(useState(null), 2), boricaData = ref4[0], setBoricaData = ref4[1];
@@ -253,6 +254,7 @@ export function CheckoutFormContextProvider(param) {
253
254
  setIsBillingSubmitting: billingState.updateIsSubmitting,
254
255
  isPaymentValid: paymentState.isValid,
255
256
  setIsPaymentSubmitting: paymentState.updateIsSubmitting,
257
+ loanInfo: paymentState.loanInfo,
256
258
  step: step,
257
259
  updateStep: setStep,
258
260
  saveOrder: handleCheckoutSubmit,
@@ -1,4 +1,5 @@
1
1
  import React from 'react';
2
+ import { OfferDTOStatusEnum } from '@sentecacommerce/sdk';
2
3
  import { getTranslatableField } from '../../utils';
3
4
  import { usePrefetchProduct } from '../usePrefetchProduct';
4
5
  function _defineProperty(obj, key, value) {
@@ -30,6 +31,7 @@ function _objectSpread(target) {
30
31
  }
31
32
  return target;
32
33
  }
34
+ export { OfferDTOStatusEnum };
33
35
  export var useLineItem = function(props) {
34
36
  var ref16 = usePrefetchProduct(getTranslatableField(props === null || props === void 0 ? void 0 : props.slug)), onMouseEnter = ref16.onMouseEnter, onMouseLeave = ref16.onMouseLeave, onMouseDown = ref16.onMouseDown;
35
37
  var data = React.useMemo(function() {
@@ -1,7 +1,7 @@
1
1
  import React from 'react';
2
2
  import { AssetSourceDTO } from '@sentecacommerce/sdk';
3
3
  import { getTranslatableField } from '../../';
4
- import { assignCombinationsToAttributeRules, createCombinationsMap, createCustomFieldsMap, createProductContent, createAttributeRulesMap, createMappedAttributes, processAvailabilityPerStore, getProductVideos, createMappedOptions, createSelectedOption2, formatCategories, createLabelsMap } from './utils';
4
+ import { assignCombinationsToAttributeRules, createCombinationsMap, createCustomFieldsMap, createProductContent, createAttributeRulesMap, createMappedAttributes, processAvailabilityPerStore, getProductVideos, createMappedOptions, createSelectedOption2, formatCategories, createLabelsMap, createCollapseKeyImagesMap } from './utils';
5
5
  import { productsApi } from '../../api/productsApi';
6
6
  import { assetsFieldsToMap } from '../../utils/assetsToMap';
7
7
  function _arrayWithHoles(arr) {
@@ -152,12 +152,31 @@ export function ProductProvider(param) {
152
152
  };
153
153
  var selectVariantByAttribute = function selectVariantByAttribute(key) {
154
154
  var ref;
155
- var id = (ref = combinations[key]) === null || ref === void 0 ? void 0 : ref.value;
156
- setSelectedVariant(variants[id]);
155
+ // Get by collapseKey for SD
156
+ var split = key.split(':');
157
+ if (split[0] === 'collapseKey') {
158
+ var id = Object.keys(variants).find(function(el) {
159
+ return variants[el].collapseKey === split[1];
160
+ });
161
+ return setSelectedVariant(variants[id]);
162
+ }
163
+ var id1 = (ref = combinations[key]) === null || ref === void 0 ? void 0 : ref.value;
164
+ setSelectedVariant(variants[id1]);
157
165
  };
158
166
  var selectVariantByCombination = function selectVariantByCombination(key, value) {
159
- var id = combinations[key].params[value];
160
- setSelectedVariant(variants[id]);
167
+ // Take collapseKey for SD
168
+ var split = value.split(':');
169
+ if (split[0] === 'collapseKey') {
170
+ var id = Object.keys(variants).find(function(el) {
171
+ var ref;
172
+ return variants[el].collapseKey === split[1] && ((ref = variants[el].attributes.find(function(attr) {
173
+ return attr.name === 'size';
174
+ })) === null || ref === void 0 ? void 0 : ref.value) === key;
175
+ });
176
+ return setSelectedVariant(variants[id]);
177
+ }
178
+ var id2 = combinations[key].params[value];
179
+ setSelectedVariant(variants[id2]);
161
180
  };
162
181
  var selectVariantOptions = function selectVariantOptions(definitionKey, optionKey) {
163
182
  if (selectedVariant) {
@@ -296,12 +315,14 @@ export function ProductProvider(param) {
296
315
  }, [
297
316
  variants
298
317
  ]);
318
+ var collapsedImages = createCollapseKeyImagesMap(product);
299
319
  var state = {
300
320
  metaData: metaData,
301
321
  seoData: seoData,
302
322
  variants: variants,
303
323
  selectedVariant: selectedVariant,
304
- attributeRules: attributeRules
324
+ attributeRules: attributeRules,
325
+ collapsedImages: collapsedImages
305
326
  };
306
327
  var functions = {
307
328
  getVariantById: getVariantById,
@@ -118,6 +118,19 @@ export var createProductContent = function(data) {
118
118
  content: getTranslatableField(data.content)
119
119
  };
120
120
  };
121
+ // Add grouped images for SD color variants
122
+ export var createCollapseKeyImagesMap = function(product) {
123
+ var ref;
124
+ var mappedKeys = product === null || product === void 0 ? void 0 : (ref = product.variants) === null || ref === void 0 ? void 0 : ref.reduce(function(res, cur) {
125
+ if (!res[cur.collapseKey]) {
126
+ res[cur.collapseKey] = [];
127
+ }
128
+ res[cur.collapseKey].push(cur);
129
+ return res;
130
+ }, {
131
+ });
132
+ return mappedKeys;
133
+ };
121
134
  export var createAttributeRulesMap = function(product) {
122
135
  var ref, ref1;
123
136
  var uniqueRules = product === null || product === void 0 ? void 0 : (ref = product.attributeRules) === null || ref === void 0 ? void 0 : ref.filter(function(x) {
@@ -1,4 +1,4 @@
1
- import React, { useRef, useCallback } from 'react';
1
+ import { useRef, useCallback } from 'react';
2
2
  import { useUpdate } from './';
3
3
  function _defineProperty(obj, key, value) {
4
4
  if (key in obj) {
@@ -10,8 +10,7 @@ function mapVoucherData(element) {
10
10
  var limitValue = element.cartDiscounts[0].resource.maxDiscountValue.centAmount;
11
11
  var limitCurrency = element.cartDiscounts[0].resource.maxDiscountValue.currencyCode;
12
12
  var endDate = new Date(element.validTo).toLocaleDateString('bg-BG');
13
- var isUsed = //@ts-ignore
14
- element.totalApplications >= element.maxApplicationsPerCustomer;
13
+ var isUsed = element.totalApplications >= ((element === null || element === void 0 ? void 0 : element.maxApplicationsPerCustomer) || 1);
15
14
  return {
16
15
  voucherCode: voucherCode,
17
16
  campaign: campaign,
package/dist/esm/index.js CHANGED
@@ -1,3 +1,5 @@
1
+ import Cookie from 'js-cookie';
2
+ export { Cookie };
1
3
  export * from './dto';
2
4
  // API
3
5
  // export * from './api/myCart'
@@ -120,6 +122,8 @@ export * from './navigation';
120
122
  export * from './GDPR';
121
123
  // User
122
124
  export * from './user';
125
+ // Basket
126
+ export * from './basket';
123
127
  // UI Components and hooks
124
128
  export * from './ui';
125
129
  export * from './wishlist';
@@ -37,6 +37,35 @@ function _asyncToGenerator(fn) {
37
37
  });
38
38
  };
39
39
  }
40
+ function _defineProperty(obj, key, value) {
41
+ if (key in obj) {
42
+ Object.defineProperty(obj, key, {
43
+ value: value,
44
+ enumerable: true,
45
+ configurable: true,
46
+ writable: true
47
+ });
48
+ } else {
49
+ obj[key] = value;
50
+ }
51
+ return obj;
52
+ }
53
+ function _objectSpread(target) {
54
+ for(var i = 1; i < arguments.length; i++){
55
+ var source = arguments[i] != null ? arguments[i] : {
56
+ };
57
+ var ownKeys = Object.keys(source);
58
+ if (typeof Object.getOwnPropertySymbols === "function") {
59
+ ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function(sym) {
60
+ return Object.getOwnPropertyDescriptor(source, sym).enumerable;
61
+ }));
62
+ }
63
+ ownKeys.forEach(function(key) {
64
+ _defineProperty(target, key, source[key]);
65
+ });
66
+ }
67
+ return target;
68
+ }
40
69
  var AggregateRequestEnum1;
41
70
  export { AggregateRequestEnum1 as AggregateRequestEnum, };
42
71
  (function(AggregateRequestEnum) {
@@ -44,7 +73,7 @@ export { AggregateRequestEnum1 as AggregateRequestEnum, };
44
73
  AggregateRequestEnum["Categories"] = 'categories';
45
74
  })(AggregateRequestEnum1 || (AggregateRequestEnum1 = {
46
75
  }));
47
- export var useAggregateQuery = function(aggregates, request) {
76
+ export var useAggregateQuery = function(aggregates, request, sort) {
48
77
  var router = useRouter();
49
78
  var ref = usePredicate(), predicate = ref.data;
50
79
  var defaultConfig = useConfigState();
@@ -78,12 +107,18 @@ export var useAggregateQuery = function(aggregates, request) {
78
107
  slug: aliasedSlug,
79
108
  config: defaultConfig
80
109
  });
81
- _ctx.next = 5;
110
+ if (sort) {
111
+ query = _objectSpread({
112
+ }, query, {
113
+ attributeSortType: sort
114
+ });
115
+ }
116
+ _ctx.next = 6;
82
117
  return CatalogAggregate(query);
83
- case 5:
118
+ case 6:
84
119
  response = _ctx.sent;
85
120
  return _ctx.abrupt("return", response);
86
- case 7:
121
+ case 8:
87
122
  case "end":
88
123
  return _ctx.stop();
89
124
  }
@@ -97,7 +132,7 @@ export var useAggregateQuery = function(aggregates, request) {
97
132
  });
98
133
  };
99
134
  export function prepareAggregateQuery(param) {
100
- var request = param.request, predicate = param.predicate, aggregates = param.aggregates, router = param.router, postFilter = param.postFilter, slug = param.slug, config = param.config;
135
+ var request = param.request, predicate = param.predicate, aggregates = param.aggregates, router = param.router, postFilter = param.postFilter, slug = param.slug, config = param.config, attributeSortType = param.attributeSortType;
101
136
  var pageType = getListingPageType(router, slug, config);
102
137
  switch(request){
103
138
  case AggregateRequestEnum1.Categories:
@@ -52,7 +52,8 @@ export function ListingPageProvider(param) {
52
52
  config.productsPerPage,
53
53
  config.seoAggregates,
54
54
  config.sortOptions,
55
- config.filterExtension,
55
+ config.filterExtension,
56
+ config.attributeSortType,
56
57
  ]);
57
58
  return(/*#__PURE__*/ React.createElement(ListingPageContext.Provider, {
58
59
  value: data
@@ -71,8 +71,8 @@ function _slicedToArray(arr, i) {
71
71
  var ListingFiltersStateContext = /*#__PURE__*/ React.createContext(undefined);
72
72
  export function ListingFiltersProvider(param) {
73
73
  var children = param.children;
74
- var ref = useListingConfig(), aggregates = ref.aggregates, pageType = ref.type;
75
- var ref1 = useAggregateQuery(aggregates, AggregateRequestEnum.Filters), aggData = ref1.data, isLoading = ref1.isLoading, isFetching = ref1.isFetching;
74
+ var ref = useListingConfig(), aggregates = ref.aggregates, pageType = ref.type, attributeSortType = ref.attributeSortType;
75
+ var ref1 = useAggregateQuery(aggregates, AggregateRequestEnum.Filters, attributeSortType), aggData = ref1.data, isLoading = ref1.isLoading, isFetching = ref1.isFetching;
76
76
  var config = useConfigState();
77
77
  var router = useRouter();
78
78
  var slug = useListingSlug();
@@ -1,3 +1,10 @@
1
+ var AggregateSortEnum1;
2
+ export { AggregateSortEnum1 as AggregateSortEnum, };
3
+ (function(AggregateSortEnum) {
4
+ AggregateSortEnum["Index"] = 'index';
5
+ AggregateSortEnum["Alphabetically"] = 'alphabetically';
6
+ })(AggregateSortEnum1 || (AggregateSortEnum1 = {
7
+ }));
1
8
  var ListingTypesEnum1;
2
9
  export { ListingTypesEnum1 as ListingTypesEnum, };
3
10
  (function(ListingTypesEnum) {
@@ -32,8 +32,8 @@ function _objectSpread(target) {
32
32
  var _obj;
33
33
  export var buildCategoryQuery = function(param) {
34
34
  var aggregates = param.aggregates, predicate = param.predicate, postFilter = param.postFilter, pageType = param.pageType, config = param.config, router = param.router, slug = param.slug;
35
- var ref, ref1;
36
- var type = aggregates === null || aggregates === void 0 ? void 0 : (ref = aggregates[0]) === null || ref === void 0 ? void 0 : ref.aggregationType;
35
+ var ref2, ref1;
36
+ var type = aggregates === null || aggregates === void 0 ? void 0 : (ref2 = aggregates[0]) === null || ref2 === void 0 ? void 0 : ref2.aggregationType;
37
37
  var term = aggregates === null || aggregates === void 0 ? void 0 : (ref1 = aggregates[0]) === null || ref1 === void 0 ? void 0 : ref1.aggregationDefinition;
38
38
  var aggValue = getAggValue({
39
39
  id: predicate === null || predicate === void 0 ? void 0 : predicate._id,
@@ -53,10 +53,15 @@ export var buildCategoryQuery = function(param) {
53
53
  });
54
54
  break;
55
55
  case ListingTypesEnum.Category:
56
- if (router.query.cat) filter += extendFilter({
57
- slug: slug,
58
- filterExtension: listingConfig === null || listingConfig === void 0 ? void 0 : listingConfig.filterExtension
59
- });
56
+ if (router.query.cat) {
57
+ filter += extendFilter({
58
+ slug: slug,
59
+ filterExtension: listingConfig === null || listingConfig === void 0 ? void 0 : listingConfig.filterExtension
60
+ });
61
+ } else {
62
+ var ref;
63
+ filter += (ref = listingConfig === null || listingConfig === void 0 ? void 0 : listingConfig.filterExtension) !== null && ref !== void 0 ? ref : '';
64
+ }
60
65
  if (postFilter) {
61
66
  if (router.query.cat) filter += '&';
62
67
  filter += postFilter;
@@ -48,7 +48,7 @@ export var Container = function(param) {
48
48
  mobile: onlyMobile,
49
49
  desktop: onlyDesktop
50
50
  }, Boolean(title) && /*#__PURE__*/ React.createElement(Headline, {
51
- color: labelsColor
51
+ color: labelsColor || ''
52
52
  }, title), /*#__PURE__*/ React.createElement(Flex, null, children)));
53
53
  };
54
54
  var Wrapper = styled.div.attrs(function(props) {