wickes-css2 2.103.0-develop.4 → 2.103.0-develop.6

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 (68) hide show
  1. package/Readme.md +5 -0
  2. package/build/css/category-main.css +1 -1
  3. package/build/css/homepage-main.css +1 -1
  4. package/build/css/kitchen-plp-main.css +1 -1
  5. package/build/css/main.css +1 -1
  6. package/build/css/my-account-main-v2.css +1 -1
  7. package/build/css/my-account-main.css +1 -1
  8. package/build/css/pdp-main-before-combine.css +1 -1
  9. package/build/css/pdp-main-non-critical.css +1 -1
  10. package/build/css/pdp-main.css +1 -1
  11. package/build/css/plp-main.css +1 -1
  12. package/build/css/store-locator-main.css +1 -1
  13. package/build/js/basket.min.js +2 -2
  14. package/build/js/bundle.min.js +1 -1
  15. package/build/js/checkout.min.js +2 -2
  16. package/build/js/emulation.min.js +50 -994
  17. package/build/js/general.bundle.min.js +1 -1
  18. package/build/js/merged-checkout.min.js +2 -2
  19. package/build/js/page/basket-v2.js +244 -138
  20. package/build/js/page/components/discounts.js +6 -6
  21. package/build/js/pdp.bundle.min.js +1 -1
  22. package/build/js/plp.bundle.min.js +1 -1
  23. package/build/js/project-list.min.js +1 -1
  24. package/package.json +18 -3
  25. package/src/components/mini-basket/mini-basket-empty.hbs +13 -3
  26. package/src/components/mini-basket/mini-basket.hbs +13 -32
  27. package/src/components/mini-basket/product-item.hbs +16 -37
  28. package/src/components/srp-injected.hbs +3 -13
  29. package/src/data/data_confirmation-summary.json +2 -4
  30. package/src/data/data_mini-basket.json +80 -4
  31. package/src/js/components/banner-placement-manager.js +10 -1
  32. package/src/js/components/general/cart-slider.js +0 -3
  33. package/src/js/components/general/create-popup-slider.js +2 -5
  34. package/src/js/components/general/mini-basket-slider.js +8 -0
  35. package/src/js/emulation/account-hub.js +40 -40
  36. package/src/js/emulation/custom-slider-emulation.js +10 -4
  37. package/src/js/page/basket-v2.js +244 -138
  38. package/src/js/page/components/discounts.js +6 -6
  39. package/src/layouts/base.hbs +6 -0
  40. package/src/page_plp_v2.html +2 -1
  41. package/src/partials/scripts.hbs +0 -1
  42. package/src/scss/category-main.scss +1 -0
  43. package/src/scss/components/_custom-slider.scss +3 -124
  44. package/src/scss/components/_popover-mini-basket.scss +4 -0
  45. package/src/scss/emulation.scss +3 -3
  46. package/src/scss/helpers/_colors-semantic.scss +120 -0
  47. package/src/scss/helpers/_variables.scss +2 -0
  48. package/src/scss/pages/_facets.scss +86 -0
  49. package/src/scss/plp-main.scss +1 -0
  50. package/build/js/mini-basket-slider.min.js +0 -1
  51. package/build/js/page/basket/basket-update-cart-action.js +0 -60
  52. package/build/js/page/basket/basket-update-cart.js +0 -29
  53. package/build/js/page/basket/basket-utils.js +0 -50
  54. package/build/js/page/basket/mini-basket-total.js +0 -97
  55. package/build/js/page/basket/quantity-change-handler.js +0 -56
  56. package/build/js/page/basket/update-quantity-operation.js +0 -37
  57. package/build/js/page/basket/update-quantity.js +0 -65
  58. package/build/js/page/components/mini-basket-slider.js +0 -562
  59. package/src/components/mini-basket/mini-basket-order-item.hbs +0 -73
  60. package/src/js/emulation/mini-basket-data.js +0 -949
  61. package/src/js/page/basket/basket-update-cart-action.js +0 -60
  62. package/src/js/page/basket/basket-update-cart.js +0 -29
  63. package/src/js/page/basket/basket-utils.js +0 -50
  64. package/src/js/page/basket/mini-basket-total.js +0 -97
  65. package/src/js/page/basket/quantity-change-handler.js +0 -56
  66. package/src/js/page/basket/update-quantity-operation.js +0 -37
  67. package/src/js/page/basket/update-quantity.js +0 -65
  68. package/src/js/page/components/mini-basket-slider.js +0 -562
@@ -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,56 +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
- } = params
13
-
14
- let newValue = value;
15
-
16
- switch (action) {
17
- case 'plus':
18
- newValue = Number.parseInt(value, 10) + 1;
19
- if (newValue) {
20
- updateQuantity(quantityInput, newValue);
21
- debounceQuantityChange(entryNumber, newValue, quantityInput, context, onQuantityChange);
22
- }
23
- break;
24
- case 'minus':
25
- newValue = Number.parseInt(value, 10) - 1;
26
- if (newValue > 0) {
27
- updateQuantity(quantityInput, newValue);
28
- debounceQuantityChange(entryNumber, newValue, quantityInput, context, onQuantityChange);
29
- } else {
30
- if (typeof onRemoveQuantityDisable === 'function') {
31
- onRemoveQuantityDisable();
32
- }
33
- }
34
- break;
35
- case 'remove':
36
- newValue = 0;
37
- if (!charity) updateQuantity(quantityInput, newValue);
38
- debounceQuantityChange(entryNumber, newValue, quantityInput, context, onQuantityChange);
39
- break;
40
- default:
41
- if (+newValue !== 0) {
42
- updateQuantity(quantityInput, newValue);
43
- debounceQuantityChange(entryNumber, newValue, quantityInput, context, onQuantityChange);
44
- }
45
- break;
46
- }
47
- }
48
-
49
- export function updateQuantity(quantityInput, value) {
50
- if (quantityInput.is('input')) {
51
- quantityInput.val(value);
52
- quantityInput.attr('value', value);
53
- } else {
54
- quantityInput.text(value);
55
- }
56
- }
@@ -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
- }