wickes-css2 2.103.0-lg-788-no-extra-req-empty-cart.1 → 2.103.0-rg-1802-gift-card-error-codes.2

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 (126) hide show
  1. package/Readme.md +1 -2
  2. package/build/css/category-main.css +1 -1
  3. package/build/css/components/checkout-payment-details-v2.css +1 -1
  4. package/build/css/homepage-main.css +1 -1
  5. package/build/css/kitchen-plp-main.css +1 -1
  6. package/build/css/main.css +1 -1
  7. package/build/css/my-account-main-v2.css +1 -1
  8. package/build/css/my-account-main.css +1 -1
  9. package/build/css/pages/page_checkout_delivery-new.css +1 -1
  10. package/build/css/pages/page_product-details-v2.css +1 -1
  11. package/build/css/pdp-main-before-combine.css +1 -1
  12. package/build/css/pdp-main-non-critical.css +1 -1
  13. package/build/css/pdp-main.css +1 -1
  14. package/build/css/plp-main.css +1 -1
  15. package/build/css/store-locator-main.css +1 -1
  16. package/build/img/giftcard.svg +28 -0
  17. package/build/img/klarna.svg +10 -0
  18. package/build/img/payment/checkout/klarna.svg +10 -0
  19. package/build/img/payment/footer/klarna.svg +10 -0
  20. package/build/js/account-members.min.js +1 -1
  21. package/build/js/add-project-list-id.min.js +1 -1
  22. package/build/js/address-book.min.js +1 -1
  23. package/build/js/basket.min.js +2 -2
  24. package/build/js/bundle.min.js +1 -1
  25. package/build/js/change-password.min.js +1 -1
  26. package/build/js/checkout.min.js +2 -2
  27. package/build/js/emulation.min.js +282 -970
  28. package/build/js/general.bundle.min.js +1 -1
  29. package/build/js/gift-cards.min.js +1 -0
  30. package/build/js/merged-checkout.min.js +2 -2
  31. package/build/js/page/basket-v2.js +244 -138
  32. package/build/js/page/components/discounts.js +6 -6
  33. package/build/js/page/components/gift-cards.js +895 -0
  34. package/build/js/page/components/order-summary.js +42 -25
  35. package/build/js/page/components/toggle-password-visibility.js +22 -0
  36. package/build/js/page/utils/gift-cards-utils.js +183 -0
  37. package/build/js/page/utils/input-handling.js +92 -0
  38. package/build/js/page/utils/show-hide-input.js +28 -0
  39. package/build/js/page/utils/validation.js +46 -1
  40. package/build/js/pdp.bundle.min.js +1 -1
  41. package/build/js/personal-details.min.js +1 -1
  42. package/build/js/plp.bundle.min.js +1 -1
  43. package/build/js/project-list.min.js +44 -1
  44. package/build/js/quiz.min.js +1 -1
  45. package/build/js/toggle-password-visibility.min.js +1 -0
  46. package/build/js/track-my-order.min.js +1 -1
  47. package/package.json +2 -2
  48. package/src/components/checkout-payment-details-v2.hbs +10 -11
  49. package/src/components/checkout_payment-new.hbs +1 -4
  50. package/src/components/checkout_payment-other-methods.hbs +1 -4
  51. package/src/components/gift-cards-hint.hbs +9 -0
  52. package/src/components/gift-cards.hbs +90 -0
  53. package/src/components/giftcard-chip.hbs +23 -0
  54. package/src/components/giftcard-summary.hbs +6 -0
  55. package/src/components/mini-basket/mini-basket-empty.hbs +13 -3
  56. package/src/components/mini-basket/mini-basket.hbs +13 -32
  57. package/src/components/mini-basket/product-item.hbs +16 -37
  58. package/src/components/payments-checkout-v2.hbs +2 -7
  59. package/src/components/payments-checkout.hbs +1 -6
  60. package/src/components/payments.hbs +1 -5
  61. package/src/components/table_order-details-klarna.hbs +1 -1
  62. package/src/components/table_payment.hbs +1 -4
  63. package/src/data/data_confirmation-summary.json +2 -4
  64. package/src/data/data_mini-basket.json +80 -4
  65. package/src/data/data_wismo.json +1 -1
  66. package/src/elements/form-row.hbs +1 -1
  67. package/src/elements/input.hbs +31 -2
  68. package/src/img/giftcard.svg +28 -0
  69. package/src/img/klarna.svg +10 -0
  70. package/src/img/payment/checkout/klarna.svg +10 -0
  71. package/src/img/payment/footer/klarna.svg +10 -0
  72. package/src/js/components/general/cart-slider.js +0 -4
  73. package/src/js/components/general/create-popup-slider.js +2 -5
  74. package/src/js/components/general/mini-basket-slider.js +8 -0
  75. package/src/js/components/general/notification.js +2 -1
  76. package/src/js/emulation/checkout-data.js +35 -0
  77. package/src/js/emulation/checkout-payment-details.js +23 -14
  78. package/src/js/emulation/custom-slider-emulation.js +10 -4
  79. package/src/js/emulation/forms.js +7 -2
  80. package/src/js/emulation/gift-cards.js +205 -0
  81. package/src/js/page/basket-v2.js +244 -138
  82. package/src/js/page/components/discounts.js +6 -6
  83. package/src/js/page/components/gift-cards.js +895 -0
  84. package/src/js/page/components/order-summary.js +42 -25
  85. package/src/js/page/components/toggle-password-visibility.js +22 -0
  86. package/src/js/page/utils/gift-cards-utils.js +183 -0
  87. package/src/js/page/utils/input-handling.js +92 -0
  88. package/src/js/page/utils/show-hide-input.js +28 -0
  89. package/src/js/page/utils/validation.js +46 -1
  90. package/src/layouts/base.hbs +6 -0
  91. package/src/layouts/checkout.hbs +1 -5
  92. package/src/page_checkout_payment-details_guest-with-checkout-journey.html +1 -1
  93. package/src/page_my-account_change-password.html +1 -0
  94. package/src/page_my-order.html +1 -1
  95. package/src/page_payment-details-with-clearpay.html +2 -2
  96. package/src/page_payment-details-with-gift-card.html +8 -5
  97. package/src/page_shopping-cart-v2.html +2 -2
  98. package/src/partials/scripts.hbs +0 -1
  99. package/src/scss/components/_custom-slider.scss +3 -131
  100. package/src/scss/components/_gift-cards.scss +360 -0
  101. package/src/scss/components/_popover-mini-basket.scss +4 -0
  102. package/src/scss/components/checkout-payment-details-v2.scss +2 -0
  103. package/src/scss/pages/page_checkout_delivery-new.scss +26 -0
  104. package/src/scss/pages/page_product-details-v2.scss +4 -0
  105. package/src/sitemap.html +0 -6
  106. package/build/js/mini-basket-slider.min.js +0 -1
  107. package/build/js/page/basket/basket-update-cart-action.js +0 -59
  108. package/build/js/page/basket/basket-update-cart.js +0 -29
  109. package/build/js/page/basket/basket-utils.js +0 -50
  110. package/build/js/page/basket/mini-basket-total.js +0 -97
  111. package/build/js/page/basket/quantity-change-handler.js +0 -64
  112. package/build/js/page/basket/update-quantity-operation.js +0 -37
  113. package/build/js/page/basket/update-quantity.js +0 -65
  114. package/build/js/page/components/mini-basket-slider.js +0 -569
  115. package/src/components/mini-basket/mini-basket-order-item.hbs +0 -73
  116. package/src/js/components/toggle-password-visibility.js +0 -58
  117. package/src/js/emulation/mini-basket-data.js +0 -949
  118. package/src/js/page/basket/basket-update-cart-action.js +0 -59
  119. package/src/js/page/basket/basket-update-cart.js +0 -29
  120. package/src/js/page/basket/basket-utils.js +0 -50
  121. package/src/js/page/basket/mini-basket-total.js +0 -97
  122. package/src/js/page/basket/quantity-change-handler.js +0 -64
  123. package/src/js/page/basket/update-quantity-operation.js +0 -37
  124. package/src/js/page/basket/update-quantity.js +0 -65
  125. package/src/js/page/components/mini-basket-slider.js +0 -569
  126. package/src/page_split-orders-klarna.html +0 -106
@@ -1,59 +0,0 @@
1
- export function updateCartActionBase(params) {
2
- const {
3
- response,
4
- repaintData,
5
- context,
6
- charity,
7
- initial,
8
- updateOrderSummaryFn,
9
- getEqualMapFn,
10
- repaintOrderItemsFn,
11
- addCharityEntryNumberFn,
12
- updatePromotionFn,
13
- addPotentialPromoFn,
14
- cartEntries,
15
- getCartEntriesFn,
16
- checkProductArraysFn,
17
- removeOrderItemFn,
18
- elOrderItem,
19
- updateKlarnaPlacementsFn,
20
- updateClearpayPlacementsFn,
21
- updateClearpayVisibilityFn,
22
- addClassToSummaryAsideFn,
23
- updateBasketSessionFn,
24
- drawEnergyLabelsFn,
25
- triggerCartUpdate = true,
26
- extraActions = () => {},
27
- extraActionsMiniBasket = () => {},
28
- } = params;
29
- if (initial) {
30
- getCartEntriesFn(response);
31
- } else {
32
- updateOrderSummaryFn && updateOrderSummaryFn(response, getEqualMapFn(response));
33
- if (repaintData) {
34
- if (repaintData.isChangeDelivery) {
35
- repaintData.cartEntry = cartEntries.filter(entry => entry.entryNumber === repaintData.cartEntryNumber)[0];
36
- $(document).trigger("EEUpdateDeliveryMode", repaintData);
37
- }
38
- checkProductArraysFn(response)
39
- ? repaintOrderItemsFn(response, repaintData)
40
- : (() => {
41
- $(elOrderItem).remove();
42
- removeOrderItemFn && removeOrderItemFn(repaintData);
43
- })();
44
- }
45
- charity && addCharityEntryNumberFn && addCharityEntryNumberFn(response);
46
- context && context.length && updatePromotionFn && updatePromotionFn(response, context);
47
- addPotentialPromoFn && addPotentialPromoFn(response);
48
- updateKlarnaPlacementsFn && updateKlarnaPlacementsFn(response.totalPrice.formattedPriceWithoutCurrencySymbol);
49
- updateClearpayPlacementsFn && updateClearpayPlacementsFn(response.totalPrice.value);
50
- updateClearpayVisibilityFn && updateClearpayVisibilityFn(response.totalPrice.value);
51
- addClassToSummaryAsideFn && addClassToSummaryAsideFn(response);
52
- getCartEntriesFn && getCartEntriesFn(response);
53
- updateBasketSessionFn && updateBasketSessionFn();
54
- drawEnergyLabelsFn && drawEnergyLabelsFn();
55
- triggerCartUpdate && $(document).trigger("cartUpdate");
56
- extraActions && extraActions(response, repaintData, context, charity, initial);
57
- extraActionsMiniBasket && extraActionsMiniBasket();
58
- }
59
- }
@@ -1,29 +0,0 @@
1
- export function updateCartBase(params) {
2
- const {
3
- isLocalEnv,
4
- apiUrl,
5
- apiType,
6
- hideLoader,
7
- callActionFn,
8
- actionCallback,
9
- initial,
10
- localUpdateFn,
11
- repaintData,
12
- context,
13
- charity,
14
- extraLocalActions = () => {},
15
- extraApiActions = () => {},
16
- } = params;
17
- if (!isLocalEnv) {
18
- const payload = {
19
- url: apiUrl,
20
- type: apiType,
21
- complete: hideLoader,
22
- };
23
- callActionFn(payload, actionCallback, {repaintData, context, charity, initial});
24
- extraApiActions();
25
- } else {
26
- localUpdateFn(initial, repaintData, context, charity, null);
27
- extraLocalActions();
28
- }
29
- }
@@ -1,50 +0,0 @@
1
- export function isMessageExist(data) {
2
- return data.message && data.statusMessage;
3
- }
4
-
5
- export function getMessageInfo(data) {
6
- return {
7
- message: data.message,
8
- status: data.statusMessage,
9
- }
10
- }
11
-
12
- export function showNotification(data, containerSelector = '.notification-area') {
13
- let notificationType;
14
- switch (data.statusMessage) {
15
- case 'accConfirmedMsgs':
16
- notificationType = 'success'
17
- break;
18
- case 'accWarnMsgs':
19
- notificationType = 'warning'
20
- break;
21
- case 'accErrorMsgs':
22
- notificationType = 'error'
23
- break;
24
- }
25
-
26
- Wick.Notification.show({
27
- text: data.message,
28
- container: containerSelector,
29
- type: notificationType,
30
- closeBtn: true
31
- });
32
- }
33
-
34
- export function getCartEntries(data) {
35
- return data?.deliveryOrderGroups.concat(data.pickupOrderGroups)
36
- .map(orderGroup => orderGroup?.entries)
37
- .flatMap(entries => entries);
38
- }
39
-
40
- export function checkProductArrays(cart) {
41
- return cart.pickupUniqueItemsNumber || cart.deliveryUniqueItemsNumber;
42
- }
43
-
44
- export function updatePromotion(data, orderItemSelector, orderItemOffersSelector, orderItemInfoSelector, addPromotionsFn) {
45
- $(orderItemSelector).each(function () {
46
- let itemNumber = {entryNumber: +$(this).attr('data-id')}
47
- $(this).find(orderItemOffersSelector).remove()
48
- $(this).find(orderItemInfoSelector).append(addPromotionsFn(itemNumber, data));
49
- })
50
- }
@@ -1,97 +0,0 @@
1
- import {updateDiscount} from "../components/discounts";
2
-
3
- const osEl = {
4
- $totalSection: $('.mini-basket__total'),
5
- checkoutWidgetDetailsDiscount: '.checkout-widget__details-discount',
6
- checkoutWidgetDetails: '.checkout-widget__details',
7
- delivery: '.checkout-widget__item-delivery',
8
- cc: '.checkout-widget__item-cc',
9
- itemFree: '.checkout-widget__item-free',
10
- itemDeficit: '.checkout-widget__item-deficit',
11
- summaryDelivery: '.checkout-widget__item-delivery',
12
- }
13
-
14
- export function updateTotal(data, equalMap, isVoucher) {
15
- equalMap.forEach((obj) => {
16
- if ($(obj.item).length) {
17
- $(obj.item).show();
18
- } else {
19
- if ($(osEl.checkoutWidgetDetailsDiscount).length) {
20
- $(osEl.checkoutWidgetDetailsDiscount).before(createCheckoutWidgetItem(obj))
21
- } else {
22
- $(osEl.checkoutWidgetDetails).append(createCheckoutWidgetItem(obj))
23
- }
24
- }
25
-
26
- $(obj.item).find(obj.itemValue).text(obj.dataValue);
27
- if (isVoucher ? obj.dataValue : obj.value && obj.dataValue) {
28
- $(obj.item).find(obj.itemValue).show();
29
- } else {
30
- $(obj.item).hide();
31
- }
32
- })
33
-
34
- updateDiscount(data, isVoucher);
35
- hideUnusedDeliveryTypeCost(data, isVoucher);
36
- calculateFreeDelivery(data);
37
- }
38
-
39
- function createCheckoutWidgetItem(obj) {
40
- return `
41
- <li class="checkout-widget__item ${obj.item.substr(1)}">
42
- <span>${obj.title}</span>
43
- <span class="checkout-widget__item-value">${obj.dataValue}</span>
44
- </li>
45
- `
46
- }
47
-
48
- function hideUnusedDeliveryTypeCost(data, isVoucher) {
49
- $(osEl.delivery).show()
50
- $(osEl.cc).show()
51
- if (isVoucher) {
52
- if (!data.deliveryOrder) {
53
- $(osEl.delivery).hide()
54
- } else if (!data.clickAndCollectOrder) {
55
- $(osEl.cc).hide()
56
- }
57
- } else {
58
- if (data.clickAndCollectOnly) {
59
- $(osEl.delivery).hide()
60
- } else if (data.deliveryItemsQuantity > 0 && data.pickupItemsQuantity === 0) {
61
- $(osEl.cc).hide()
62
- }
63
- }
64
- }
65
-
66
- function calculateFreeDelivery(data) {
67
- osEl.$totalSection.each(function () {
68
- let $free = $(this).find(osEl.itemFree);
69
- let $deficit = $(this).find(osEl.itemDeficit);
70
-
71
- !$free.length || $free.remove();
72
- !$deficit.length || $deficit.remove()
73
-
74
- if (!data.clickAndCollectOnly) {
75
- if (data.freeDelivery && data.messageForFreeDelivery) {
76
- $(this).find(osEl.summaryDelivery).before(function () {
77
- return `
78
- <div class="checkout-widget__item checkout-widget__item-free">
79
- <span class="checkout-widget__text">
80
- ${data.messageForFreeDelivery}
81
- </span>
82
- </div>
83
- `
84
- })
85
- $(this).find(osEl.summaryDelivery).hide();
86
- } else if (!data.freeDelivery && data.messageForFreeDelivery) {
87
- $(this).find(osEl.summaryDelivery).before(function () {
88
- return `
89
- <div class="checkout-widget__item checkout-widget__item-deficit">
90
- ${data.messageForFreeDelivery}
91
- </div>
92
- `
93
- })
94
- }
95
- }
96
- })
97
- }
@@ -1,64 +0,0 @@
1
- export function handleQuantityChange(params) {
2
- const {
3
- quantityInput,
4
- action,
5
- value,
6
- context,
7
- charity = false,
8
- entryNumber,
9
- onQuantityChange,
10
- debounceQuantityChange,
11
- onRemoveQuantityDisable,
12
- parentWrap,
13
- } = params
14
-
15
- let newValue = value;
16
-
17
- switch (action) {
18
- case 'plus':
19
- newValue = Number.parseInt(value, 10) + 1;
20
- if (newValue) {
21
- updateQuantity(quantityInput, newValue, parentWrap);
22
- debounceQuantityChange(entryNumber, newValue, quantityInput, context, onQuantityChange);
23
- }
24
- break;
25
- case 'minus':
26
- newValue = Number.parseInt(value, 10) - 1;
27
- if (newValue > 0) {
28
- updateQuantity(quantityInput, newValue, parentWrap);
29
- debounceQuantityChange(entryNumber, newValue, quantityInput, context, onQuantityChange);
30
- } else {
31
- if (typeof onRemoveQuantityDisable === 'function') {
32
- onRemoveQuantityDisable();
33
- }
34
- }
35
- break;
36
- case 'remove':
37
- newValue = 0;
38
- if (!charity) updateQuantity(quantityInput, newValue, parentWrap);
39
- debounceQuantityChange(entryNumber, newValue, quantityInput, context, onQuantityChange);
40
- break;
41
- default:
42
- if (+newValue !== 0) {
43
- updateQuantity(quantityInput, newValue, parentWrap);
44
- debounceQuantityChange(entryNumber, newValue, quantityInput, context, onQuantityChange);
45
- }
46
- break;
47
- }
48
- }
49
-
50
- export function updateQuantity(quantityInput, value, parentWrap) {
51
- if (quantityInput.is('input')) {
52
- quantityInput.val(value);
53
- } else {
54
- quantityInput.text(value);
55
- }
56
- quantityInput.attr('value', value);
57
-
58
- if (parentWrap) {
59
- const $card = quantityInput.closest(parentWrap);
60
- if ($card.length) {
61
- $card.attr('data-quantity', value);
62
- }
63
- }
64
- }
@@ -1,37 +0,0 @@
1
- export function updateQuantityOperation(quantityToUpdate, quantityInput, context, data, helpers = {}) {
2
- const charity = context.hasClass && context.hasClass('charity-new');
3
- const negativeStatus = data.statusMessage !== 'accConfirmedMsgs';
4
- const messageInfo = helpers.isMessageExist ? helpers.isMessageExist(data) && helpers.getMessageInfo(data) : data.message && data.statusMessage && { message: data.message, status: data.statusMessage };
5
- let maxValue, minValue;
6
-
7
- if (!charity) {
8
- maxValue = +quantityInput.attr('max');
9
- minValue = +quantityInput.attr('min');
10
- }
11
-
12
- minValue === 0 ? minValue = 1 : minValue = minValue;
13
-
14
- if (negativeStatus) {
15
- helpers.updateCart && helpers.updateCart(messageInfo);
16
- helpers.updateQuantity && helpers.updateQuantity(quantityInput, data.quantity);
17
- helpers.showNotification && helpers.showNotification(data);
18
- } else {
19
- if (charity) {
20
- helpers.updateCart && helpers.updateCart();
21
- } else {
22
- if (maxValue > 1 || minValue > 1) {
23
- if (quantityToUpdate > maxValue || quantityToUpdate < minValue) {
24
- helpers.showNotification && helpers.showNotification(data);
25
- }
26
- }
27
-
28
- if (quantityToUpdate === 0) {
29
- helpers.showNotification && helpers.showNotification(data);
30
- helpers.updateCart && helpers.updateCart(messageInfo);
31
- } else {
32
- helpers.updateItemTotal && helpers.updateItemTotal(data, context);
33
- helpers.updateCart && helpers.updateCart(null, context);
34
- }
35
- }
36
- }
37
- }
@@ -1,65 +0,0 @@
1
- export function updateQuantityAction(params) {
2
- const {
3
- entryNumber,
4
- quantityToUpdate,
5
- quantityInput,
6
- context,
7
- addQuantityDisable,
8
- removeQuantityDisable,
9
- hideLoader,
10
- loaderSelector,
11
- updateAction,
12
- updateQuantityOperation,
13
- basketData,
14
- isLocalEnv,
15
- callActionFn,
16
- routes,
17
- basketSectionSelector
18
- } = params;
19
- console.log('case(api) to update quantity', entryNumber, quantityToUpdate);
20
- if (!isLocalEnv) {
21
- addQuantityDisable && addQuantityDisable(context);
22
- const payload = {
23
- url: `${routes.BASKET_ADD_STOCK}/${entryNumber}`,
24
- queries: { quantity: quantityToUpdate },
25
- type: 'PUT',
26
- complete: () => {
27
- removeQuantityDisable && removeQuantityDisable();
28
- hideLoader(loaderSelector);
29
- },
30
- };
31
-
32
- callActionFn(
33
- payload,
34
- updateAction,
35
- quantityToUpdate,
36
- quantityInput,
37
- context,
38
- (response) => {
39
- if (response.statusMessage === 'accConfirmedMsgs') {
40
- $(document).trigger("EEUpdateCart", {
41
- cartEntryNumber: entryNumber,
42
- initialCartQuantity: response.quantity - response.quantityAdded,
43
- newCartQuantity: response.quantity,
44
- fulfillment: context.hasClass('charity-new')
45
- ? 'Delivery'
46
- : context.closest(basketSectionSelector).attr('data-type'),
47
- });
48
- }
49
- context.find('.order-item__action').removeClass('disabled');
50
- }
51
- );
52
- } else {
53
- updateQuantityOperation(
54
- quantityToUpdate,
55
- quantityInput,
56
- context,
57
- basketData.updateQuantity
58
- );
59
- addQuantityDisable && addQuantityDisable(context);
60
- setTimeout(() => {
61
- removeQuantityDisable && removeQuantityDisable();
62
- hideLoader && hideLoader(loaderSelector);
63
- }, 500);
64
- }
65
- }