@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.
- package/dist/cjs/analytics/addToCart.js +0 -1
- package/dist/cjs/analytics/initiateCheckout.js +0 -1
- package/dist/cjs/analytics/viewContent.js +0 -1
- package/dist/cjs/api/myCartApi/index.js +2 -1
- package/dist/cjs/basket/api/index.js +37 -0
- package/dist/cjs/basket/api/mutations/index.js +37 -0
- package/dist/cjs/basket/api/mutations/useReplaceBasketMutation.js +58 -0
- package/dist/cjs/basket/hooks/index.js +52 -0
- package/dist/cjs/basket/hooks/useBasketCrossSaleItems.js +99 -0
- package/dist/cjs/basket/hooks/useReplaceBasket.js +10 -0
- package/dist/cjs/basket/index.js +37 -0
- package/dist/cjs/checkout/api/keys.js +8 -1
- package/dist/cjs/checkout/api/queries/index.js +15 -0
- package/dist/cjs/checkout/api/queries/useBnpCalculateForCartQuery.js +60 -0
- package/dist/cjs/checkout/hooks/index.js +15 -0
- package/dist/cjs/checkout/hooks/useBnpCalculateForCart.js +120 -0
- package/dist/cjs/components/Portal/index.js +1 -1
- package/dist/cjs/contexts/CheckoutForm/hooks/usePayment/index.js +7 -2
- package/dist/cjs/contexts/CheckoutForm/index.js +5 -3
- package/dist/cjs/hooks/useLineItem/index.js +7 -0
- package/dist/cjs/hooks/useProduct/index.js +26 -5
- package/dist/cjs/hooks/useProduct/utils/index.js +14 -1
- package/dist/cjs/hooks/useProgressBar/hooks/useGetSetState.js +1 -24
- package/dist/cjs/hooks/useVouchers/index.js +1 -2
- package/dist/cjs/index.js +24 -0
- package/dist/cjs/listing/api/queries/useAggregateQuery.js +40 -5
- package/dist/cjs/listing/hooks/useListingConfig.js +2 -1
- package/dist/cjs/listing/hooks/useListingFilters.js +2 -2
- package/dist/cjs/listing/types.js +8 -1
- package/dist/cjs/listing/utils/buildCategoryQuery.js +11 -6
- package/dist/cjs/navigation/components/SearchBox/Components/Container/index.js +1 -1
- package/dist/cjs/navigation/components/SearchBox/Components/EmptyBox/index.js +19 -18
- package/dist/cjs/navigation/components/SearchBox/Components/Products/Components/ProductCard/index.js +1 -1
- package/dist/cjs/navigation/components/SearchBox/Components/Products/index.js +2 -2
- package/dist/cjs/navigation/components/SearchBox/Components/RecentSearches/index.js +1 -1
- package/dist/cjs/navigation/components/SearchBox/index.js +11 -11
- package/dist/cjs/order/api/mutations/index.js +15 -0
- package/dist/cjs/order/api/mutations/useUpdateOrderCustomFieldMutation.js +15 -0
- package/dist/cjs/order/hooks/index.js +15 -0
- package/dist/cjs/order/hooks/useUpdateOrderCustomField.js +9 -0
- package/dist/cjs/product/api/keys.js +11 -0
- package/dist/cjs/product/api/queries/index.js +37 -0
- package/dist/cjs/product/api/queries/useBnpOffersQuery.js +64 -0
- package/dist/cjs/product/hooks/index.js +37 -0
- package/dist/cjs/product/hooks/useBnpOffers.js +112 -0
- package/dist/cjs/product/index.js +15 -0
- package/dist/cjs/user/api/queries/index.js +15 -0
- package/dist/cjs/user/api/queries/useGetMyLoyaltyCardQuery.js +21 -0
- package/dist/cjs/user/api/utils/getUserToken.js +16 -0
- package/dist/cjs/user/api/utils/index.js +12 -0
- package/dist/cjs/user/hooks/index.js +24 -0
- package/dist/cjs/user/hooks/useGetMyLoyaltyCard.js +9 -0
- package/dist/cjs/user/hooks/useGetUserToken.js +15 -0
- package/dist/esm/analytics/Pixel/mainScript.js +0 -1
- package/dist/esm/analytics/addToCart.js +0 -1
- package/dist/esm/analytics/initiateCheckout.js +0 -1
- package/dist/esm/analytics/pageView.js +1 -1
- package/dist/esm/analytics/viewContent.js +0 -1
- package/dist/esm/api/myCartApi/index.js +2 -1
- package/dist/esm/basket/api/index.js +1 -0
- package/dist/esm/basket/api/mutations/index.js +1 -0
- package/dist/esm/basket/api/mutations/useReplaceBasketMutation.js +48 -0
- package/dist/esm/basket/hooks/index.js +2 -0
- package/dist/esm/basket/hooks/useBasketCrossSaleItems.js +67 -0
- package/dist/esm/basket/hooks/useReplaceBasket.js +2 -0
- package/dist/esm/basket/index.js +1 -0
- package/dist/esm/checkout/api/keys.js +6 -0
- package/dist/esm/checkout/api/queries/index.js +1 -0
- package/dist/esm/checkout/api/queries/useBnpCalculateForCartQuery.js +50 -0
- package/dist/esm/checkout/hooks/index.js +1 -0
- package/dist/esm/checkout/hooks/useBnpCalculateForCart.js +92 -0
- package/dist/esm/components/GoogleOneTap/index.js +1 -1
- package/dist/esm/components/Portal/index.js +1 -1
- package/dist/esm/contexts/CheckoutForm/hooks/usePayment/index.js +7 -2
- package/dist/esm/contexts/CheckoutForm/index.js +5 -3
- package/dist/esm/hooks/useLineItem/index.js +2 -0
- package/dist/esm/hooks/useProduct/index.js +27 -6
- package/dist/esm/hooks/useProduct/utils/index.js +13 -0
- package/dist/esm/hooks/useProgressBar/hooks/useGetSetState.js +1 -1
- package/dist/esm/hooks/useVouchers/index.js +1 -2
- package/dist/esm/index.js +4 -0
- package/dist/esm/listing/api/queries/useAggregateQuery.js +40 -5
- package/dist/esm/listing/hooks/useListingConfig.js +2 -1
- package/dist/esm/listing/hooks/useListingFilters.js +2 -2
- package/dist/esm/listing/types.js +7 -0
- package/dist/esm/listing/utils/buildCategoryQuery.js +11 -6
- package/dist/esm/navigation/components/SearchBox/Components/Container/index.js +1 -1
- package/dist/esm/navigation/components/SearchBox/Components/EmptyBox/index.js +19 -18
- package/dist/esm/navigation/components/SearchBox/Components/Products/Components/ProductCard/index.js +1 -1
- package/dist/esm/navigation/components/SearchBox/Components/Products/index.js +2 -2
- package/dist/esm/navigation/components/SearchBox/Components/RecentSearches/index.js +1 -1
- package/dist/esm/navigation/components/SearchBox/index.js +11 -11
- package/dist/esm/order/api/mutations/index.js +1 -0
- package/dist/esm/order/api/mutations/useUpdateOrderCustomFieldMutation.js +10 -0
- package/dist/esm/order/hooks/index.js +1 -0
- package/dist/esm/order/hooks/useUpdateOrderCustomField.js +4 -0
- package/dist/esm/product/api/keys.js +6 -0
- package/dist/esm/product/api/queries/index.js +1 -0
- package/dist/esm/product/api/queries/useBnpOffersQuery.js +54 -0
- package/dist/esm/product/hooks/index.js +1 -0
- package/dist/esm/product/hooks/useBnpOffers.js +84 -0
- package/dist/esm/product/index.js +1 -0
- package/dist/esm/user/api/queries/index.js +1 -0
- package/dist/esm/user/api/queries/useGetMyLoyaltyCardQuery.js +16 -0
- package/dist/esm/user/api/utils/getUserToken.js +6 -0
- package/dist/esm/user/api/utils/index.js +1 -0
- package/dist/esm/user/hooks/index.js +2 -0
- package/dist/esm/user/hooks/useGetMyLoyaltyCard.js +4 -0
- package/dist/esm/user/hooks/useGetUserToken.js +5 -0
- package/dist/types/api/myCartApi/index.d.ts +1 -0
- package/dist/types/basket/api/index.d.ts +1 -0
- package/dist/types/basket/api/mutations/index.d.ts +1 -0
- package/dist/types/basket/api/mutations/useReplaceBasketMutation.d.ts +2 -0
- package/dist/types/basket/hooks/index.d.ts +2 -0
- package/dist/types/basket/hooks/useBasketCrossSaleItems.d.ts +9 -0
- package/dist/types/basket/hooks/useReplaceBasket.d.ts +2 -0
- package/dist/types/basket/index.d.ts +1 -0
- package/dist/types/checkout/api/keys.d.ts +1 -0
- package/dist/types/checkout/api/queries/index.d.ts +1 -0
- package/dist/types/checkout/api/queries/useBnpCalculateForCartQuery.d.ts +4 -0
- package/dist/types/checkout/hooks/index.d.ts +1 -0
- package/dist/types/checkout/hooks/useBnpCalculateForCart.d.ts +39 -0
- package/dist/types/contexts/CheckoutForm/hooks/usePayment/index.d.ts +2 -0
- package/dist/types/contexts/CheckoutForm/index.d.ts +2 -1
- package/dist/types/hooks/basket-hooks/useBasketItemList/index.d.ts +1 -0
- package/dist/types/hooks/order-hooks/api/queries/useOrderGetPaymentMethodQuery.d.ts +1 -16
- package/dist/types/hooks/order-hooks/useReferralOrders/index.d.ts +1 -0
- package/dist/types/hooks/useLineItem/index.d.ts +2 -2
- package/dist/types/hooks/useProduct/index.d.ts +1 -0
- package/dist/types/hooks/useProduct/utils/index.d.ts +1 -0
- package/dist/types/index.d.ts +3 -0
- package/dist/types/listing/api/queries/useAggregateQuery.d.ts +4 -3
- package/dist/types/listing/types.d.ts +5 -0
- package/dist/types/navigation/components/SearchBox/Components/Container/index.d.ts +10 -9
- package/dist/types/navigation/components/SearchBox/Components/EmptyBox/index.d.ts +22 -21
- package/dist/types/navigation/components/SearchBox/Components/Products/Components/ProductCard/index.d.ts +8 -7
- package/dist/types/navigation/components/SearchBox/Components/Products/index.d.ts +9 -8
- package/dist/types/navigation/components/SearchBox/index.d.ts +31 -30
- package/dist/types/order/api/mutations/index.d.ts +1 -0
- package/dist/types/order/api/mutations/useUpdateCustomLineItemMutation.d.ts +2 -5
- package/dist/types/order/api/mutations/useUpdateOrderCustomFieldMutation.d.ts +9 -0
- package/dist/types/order/hooks/index.d.ts +1 -0
- package/dist/types/order/hooks/useUpdateCustomLineItem.d.ts +2 -2
- package/dist/types/order/hooks/useUpdateOrderCustomField.d.ts +2 -0
- package/dist/types/product/api/keys.d.ts +1 -0
- package/dist/types/product/api/queries/index.d.ts +1 -0
- package/dist/types/product/api/queries/useBnpOffersQuery.d.ts +5 -0
- package/dist/types/product/hooks/index.d.ts +1 -0
- package/dist/types/product/hooks/useBnpOffers.d.ts +37 -0
- package/dist/types/product/index.d.ts +1 -0
- package/dist/types/user/api/queries/index.d.ts +1 -0
- package/dist/types/user/api/queries/useGetMyLoyaltyCardQuery.d.ts +5 -0
- package/dist/types/user/api/utils/getUserToken.d.ts +1 -0
- package/dist/types/user/api/utils/index.d.ts +1 -0
- package/dist/types/user/hooks/index.d.ts +2 -0
- package/dist/types/user/hooks/useGetMyLoyaltyCard.d.ts +2 -0
- package/dist/types/user/hooks/useGetUserToken.d.ts +1 -0
- 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 @@
|
|
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
|
+
};
|
@@ -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
|
+
};
|
@@ -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
|
-
|
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
|
-
|
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
|
-
'
|
113
|
-
'
|
114
|
-
'
|
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
|
-
|
156
|
-
|
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
|
-
|
160
|
-
|
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) {
|
@@ -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 =
|
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
|
-
|
110
|
+
if (sort) {
|
111
|
+
query = _objectSpread({
|
112
|
+
}, query, {
|
113
|
+
attributeSortType: sort
|
114
|
+
});
|
115
|
+
}
|
116
|
+
_ctx.next = 6;
|
82
117
|
return CatalogAggregate(query);
|
83
|
-
case
|
118
|
+
case 6:
|
84
119
|
response = _ctx.sent;
|
85
120
|
return _ctx.abrupt("return", response);
|
86
|
-
case
|
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
|
36
|
-
var type = aggregates === null || aggregates === void 0 ? void 0 : (
|
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)
|
57
|
-
|
58
|
-
|
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) {
|