wickes-css2 2.109.0-develop.3 → 2.109.0-gift-cards.1

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 (112) hide show
  1. package/Readme.md +1 -2
  2. package/build/css/category-main.css +1 -1
  3. package/build/css/components/card-product-banner.css +1 -1
  4. package/build/css/components/checkout-payment-details-v2.css +1 -1
  5. package/build/css/homepage-main.css +1 -1
  6. package/build/css/kitchen-plp-main.css +1 -1
  7. package/build/css/main.css +1 -1
  8. package/build/css/my-account-main-v2.css +1 -1
  9. package/build/css/my-account-main.css +1 -1
  10. package/build/css/pages/checkout-new.css +1 -1
  11. package/build/css/pages/checkout.css +1 -1
  12. package/build/css/pages/page_checkout_delivery-new.css +1 -1
  13. package/build/css/pages/page_products-list-combined.css +1 -1
  14. package/build/css/pages/page_products-list.css +1 -1
  15. package/build/css/pages/page_shopping-cart-v2.css +1 -1
  16. package/build/css/pdp-main-before-combine.css +1 -1
  17. package/build/css/pdp-main-critical.css +1 -1
  18. package/build/css/pdp-main-non-critical.css +1 -1
  19. package/build/css/pdp-main.css +1 -1
  20. package/build/css/plp-main.css +1 -1
  21. package/build/css/store-locator-main.css +1 -1
  22. package/build/img/payment/checkout/giftcard.svg +28 -0
  23. package/build/img/payment/footer/giftcard.svg +28 -0
  24. package/build/js/basket.min.js +1 -1
  25. package/build/js/checkout.min.js +1 -1
  26. package/build/js/emulation.min.js +56 -178
  27. package/build/js/gift-cards.min.js +1 -1
  28. package/build/js/merged-checkout.min.js +1 -1
  29. package/build/js/mini-basket-slider.min.js +1 -1
  30. package/build/js/page/basket/mini-basket-total.js +2 -17
  31. package/build/js/page/checkout-payment-details.js +176 -79
  32. package/build/js/page/components/gift-cards.js +701 -357
  33. package/build/js/page/components/order-summary.js +0 -35
  34. package/build/js/pdp.bundle.min.js +1 -2
  35. package/build/js/toggle-password-visibility.min.js +1 -0
  36. package/package.json +3 -1
  37. package/src/components/base/button.hbs +1 -1
  38. package/src/components/card_product_banner_v2.hbs +1 -4
  39. package/src/components/card_sponsor_banner.hbs +1 -4
  40. package/src/components/checkout_order-summary-new.hbs +7 -10
  41. package/src/components/checkout_payment-new.hbs +31 -8
  42. package/src/components/click-and-collect-modal.hbs +14 -0
  43. package/src/components/date-selection.hbs +1 -1
  44. package/src/components/delivery-types.hbs +3 -11
  45. package/src/components/gift-cards.hbs +8 -15
  46. package/src/components/injected-content.hbs +1 -6
  47. package/src/components/modal.hbs +1 -1
  48. package/src/components/order-summary.hbs +2 -2
  49. package/src/components/payments.hbs +6 -5
  50. package/src/components/price-block-v2.hbs +214 -211
  51. package/src/data/data_checkout-giftcards.json +7 -0
  52. package/src/data/data_delivery-address-v2.json +5 -1
  53. package/src/data/data_payments-checkout.json +4 -0
  54. package/src/data/data_search-results_v2.json +2 -9
  55. package/src/data/data_spr_injected_content.json +0 -4
  56. package/src/data/footer_menu.json +4 -0
  57. package/src/img/payment/checkout/giftcard.svg +28 -0
  58. package/src/img/payment/footer/giftcard.svg +28 -0
  59. package/src/js/emulation/checkout-delivery-details.js +25 -28
  60. package/src/js/emulation/custom-slider-emulation.js +1 -1
  61. package/src/js/emulation/date-selection.js +24 -136
  62. package/src/js/emulation/forms.js +0 -12
  63. package/src/js/emulation/mini-basket-data.js +3 -3
  64. package/src/js/emulation/switchCalendar.js +8 -12
  65. package/src/js/page/basket/mini-basket-total.js +2 -17
  66. package/src/js/page/checkout-payment-details.js +176 -79
  67. package/src/js/page/components/gift-cards.js +701 -357
  68. package/src/js/page/components/order-summary.js +0 -35
  69. package/src/page_checkout_confirmation-gift-card.html +339 -0
  70. package/src/page_checkout_next-day-delivery-details.html +2 -2
  71. package/src/page_checkout_payment-details-v2-asm.html +1 -1
  72. package/src/page_checkout_payment-details-v2.html +1 -1
  73. package/src/page_checkout_payment-details_with-card-loader.html +1 -1
  74. package/src/page_checkout_payment-details_with-klarna-loader.html +1 -1
  75. package/src/page_checkout_payment-details_with-loader-v2.html +1 -1
  76. package/src/page_checkout_rapid-delivery-details.html +5 -7
  77. package/src/page_klarna_payment-details_with-klarna.html +1 -1
  78. package/src/page_payment-details-with-billie.html +1 -1
  79. package/src/page_payment-details-with-clearpay.html +1 -1
  80. package/src/page_payment-details-with-gift-card.html +2 -2
  81. package/src/page_payment-details_with_apple-pay.html +1 -1
  82. package/src/page_payment-details_with_google-pay.html +1 -1
  83. package/src/page_plp_v2.html +0 -1
  84. package/src/page_product-details-billie.html +2 -0
  85. package/src/page_product-details-clearpay.html +1 -0
  86. package/src/page_product-details-mfe-calculator.html +3 -9
  87. package/src/scss/common/_CTAs.scss +3 -7
  88. package/src/scss/components/_custom-slider.scss +0 -18
  89. package/src/scss/components/_date-selection-add-new-styles.scss +1 -43
  90. package/src/scss/components/_gift-cards.scss +32 -3
  91. package/src/scss/components/_order-summary.scss +12 -25
  92. package/src/scss/components/_payments-checkout.scss +2 -2
  93. package/src/scss/components/_payments-v2.scss +1 -1
  94. package/src/scss/components/_price-block-critical.scss +2 -2
  95. package/src/scss/components/_price-block.scss +4 -14
  96. package/src/scss/components/card-product-banner.scss +0 -8
  97. package/src/scss/helpers/_CTAs.scss +5 -15
  98. package/src/scss/helpers/_variables.scss +2 -0
  99. package/src/scss/pages/_checkout-confirmation-new.scss +86 -2
  100. package/src/scss/pages/page_checkout_delivery-new.scss +0 -36
  101. package/src/scss/pages/page_products-list-combined.scss +1 -8
  102. package/src/scss/pages/page_products-list.scss +1 -8
  103. package/src/scss/pages/page_shopping-cart-v2.scss +10 -34
  104. package/src/scss/pdp-main.scss +0 -1
  105. package/src/sitemap.html +6 -0
  106. package/build/js/page/components/notify-me.js +0 -99
  107. package/build/js/wickes-dc.js +0 -1
  108. package/src/components/modals/notify-me-modal.hbs +0 -76
  109. package/src/components/sponsor-top-banner.hbs +0 -10
  110. package/src/js/emulation/notify-me.js +0 -9
  111. package/src/js/page/components/notify-me.js +0 -99
  112. package/src/scss/components/_notify-me-modal.scss +0 -139
@@ -1,38 +1,35 @@
1
1
  var Wick = Wick || {};
2
2
  Wick.DeliveryDetails = (function () {
3
- var $page = $('.page_checkout-delivery-details');
3
+ var $page = $('.page_checkout-delivery-details');
4
4
 
5
- function bindEvents() {
6
- var dateAlert;
5
+ function bindEvents () {
6
+ var dateAlert;
7
7
 
8
- $page
9
- .find(
10
- '.btn-payment-details, .delivery-details__payment-details, .delivery-details__payment-details_mobile'
11
- )
12
- .on('click', function () {
13
- if (navigator.userAgent.match(/TradeProMobile_Android|DIYMobile_Android/i)) {
14
- document.body.scrollTop = 0;
15
- document.documentElement.scrollTop = 0;
16
- }
8
+ $page.find('.btn-payment-details, .delivery-details__payment-details, .delivery-details__payment-details_mobile').on('click', function () {
17
9
 
18
- if (!Wick.DateSelection.isDateSelected()) {
19
- dateAlert = Wick.Notification.show({
20
- text: 'Sorry, please select a delivery date and/or time',
21
- container: '.checkout-heading',
22
- type: 'error',
23
- });
24
- return false;
25
- }
26
- });
10
+ if (navigator.userAgent.match(/TradeProMobile_Android|DIYMobile_Android/i)) {
11
+ document.body.scrollTop = 0;
12
+ document.documentElement.scrollTop = 0;
13
+ }
27
14
 
28
- $('.date-selection').on('selected', function () {
29
- dateAlert && dateAlert.hide();
15
+ if (!Wick.DateSelection.isDateSelected()){
16
+ dateAlert = Wick.Notification.show({
17
+ text: 'Sorry, please select a delivery date and/or time',
18
+ container: '.checkout-heading',
19
+ type: 'error'
30
20
  });
31
- }
21
+ return false;
22
+ }
23
+ });
32
24
 
33
- if (!$page.length) {
34
- return;
35
- }
25
+ $('.date-selection').on('selected', function(){
26
+ dateAlert && dateAlert.hide();
27
+ });
28
+ }
36
29
 
37
- bindEvents();
30
+ if (!$page.length){
31
+ return;
32
+ }
33
+
34
+ bindEvents();
38
35
  })();
@@ -3,7 +3,7 @@ function simulateHybrisSendingHtml() {
3
3
  const event = new CustomEvent('productAddedToCart', {
4
4
  detail: { html: htmlFromHybris },
5
5
  });
6
- window.dispatchEvent(event);
6
+ document.dispatchEvent(event);
7
7
  }
8
8
 
9
9
  function bindResolveEvent(events) {
@@ -1,144 +1,32 @@
1
- const DS_EL = {
2
- cell: '.calendar__cell_cnt',
3
- dateSelection: '.date-selection',
4
- loader: '.rapid-loader',
5
- title: '.delivery-btn .title',
6
- subtitle: '.delivery-btn .subtitle',
7
- infoIcon: '.rapid-info-icon',
8
- image: '.delivery-btn__image',
9
- };
10
-
11
- const DS_CLASSES = {
12
- selectedCell: 'calendar__cell_selected',
13
- isSelected: 'date-selection_selected',
14
- rapidCell: 'calendar__cell_rapid',
15
- hidden: 'd-none',
16
- };
17
-
18
- let rapidLoaderShown = false;
19
- let isDateSelected = false;
20
-
21
- function generateRapidEstimate() {
22
- const scenario = Math.floor(Math.random() * 4);
23
-
24
- switch (scenario) {
25
- case 0: {
26
- const mins = Math.floor(Math.random() * 59) + 1;
27
- const padded = String(mins).padStart(2, '0');
28
- const word = mins === 1 ? 'minute' : 'minutes';
29
- return `Delivered in as little as <br>${padded} ${word} for &pound;10.00`;
30
- }
31
- case 1: {
32
- const mins = Math.floor(Math.random() * 60);
33
- const padded = String(mins).padStart(2, '0');
34
- const word = mins === 1 ? 'minute' : 'minutes';
35
- const minutePart = mins === 0 ? '00 minutes' : `${padded} ${word}`;
36
- return `Delivered in as little as <br>1 hour ${minutePart} for &pound;10.00`;
37
- }
38
- case 2: {
39
- const mins = Math.floor(Math.random() * 60);
40
- const padded = String(mins).padStart(2, '0');
41
- const word = mins === 1 ? 'minute' : 'minutes';
42
- const minutePart = mins === 0 ? '00 minutes' : `${padded} ${word}`;
43
- return `Delivered in as little as <br>2 hours ${minutePart} for &pound;10.00`;
44
- }
45
- default:
46
- return null;
47
- }
48
- }
49
-
50
- function updateDeliveryInfo() {
51
- const $subtitle = $(DS_EL.subtitle);
52
- const $infoIcon = $subtitle.find(DS_EL.infoIcon).detach();
53
- const estimate = generateRapidEstimate();
54
-
55
- if (estimate) {
56
- $subtitle.html(estimate);
57
- $infoIcon.removeClass(DS_CLASSES.hidden);
58
- } else {
59
- $subtitle.html('Delivery within 3 hours for <b>&pound;10.00');
60
- $infoIcon.addClass(DS_CLASSES.hidden);
61
- }
62
-
63
- $subtitle.append($infoIcon);
64
- $infoIcon.filter('[data-toggle="tooltip"]').tooltip();
65
- }
66
-
67
- function showRapidLoader() {
68
- const $self = $(DS_EL.dateSelection);
69
- const $loader = $(DS_EL.loader);
70
- $loader.removeClass(DS_CLASSES.hidden);
71
-
72
- setTimeout(() => {
73
- $loader.addClass(DS_CLASSES.hidden);
74
- $self.addClass(DS_CLASSES.isSelected);
75
- updateRapidInfo();
76
- }, 3000);
77
- }
78
-
79
- function updateNonRapidInfo() {
80
- const $title = $(DS_EL.title);
81
- const $subtitle = $(DS_EL.subtitle);
82
- const $infoIcon = $subtitle.find(DS_EL.infoIcon).detach();
83
- const $image = $(DS_EL.image);
84
-
85
- $title.text('Next or Named day delivery');
86
- $subtitle.html('Delivery between 7am - 7pm for &pound;12.00');
87
- $infoIcon.addClass(DS_CLASSES.hidden);
88
- $subtitle.append($infoIcon);
89
- $image.addClass(DS_CLASSES.hidden);
90
- }
91
-
92
- function updateRapidInfo() {
93
- const $title = $(DS_EL.title);
94
- const $image = $(DS_EL.image);
95
-
96
- $title.text('Rapid delivery');
97
- $image.removeClass(DS_CLASSES.hidden);
98
- updateDeliveryInfo();
99
- }
100
-
101
- function selectTimeSlot(e) {
102
- const $self = $(DS_EL.dateSelection);
103
- const $cell = $(e.target).closest(DS_EL.cell);
104
- const isRapid = $cell.hasClass(DS_CLASSES.rapidCell);
105
-
106
- $(DS_EL.cell).removeClass(DS_CLASSES.selectedCell);
107
- $cell.addClass(DS_CLASSES.selectedCell);
1
+ var Wick = Wick || {};
2
+ Wick.DateSelection = (function(){
3
+ var $self = $('.date-selection'),
4
+ cell = '.calendar__cell_cnt',
5
+ selectedCell = 'calendar__cell_selected',
6
+ isSelected = 'date-selection_selected',
7
+ isDateSelected = false;
8
+
9
+ var selectTimeSlot = function(e){
10
+ $(cell).removeClass(selectedCell);
11
+ $(e.target).addClass(selectedCell);
12
+ $self.addClass(isSelected);
108
13
  $self.trigger('selected');
109
14
  isDateSelected = true;
15
+ };
110
16
 
111
- if (isRapid) {
112
- if (!rapidLoaderShown) {
113
- rapidLoaderShown = true;
114
- showRapidLoader();
115
- return;
116
- } else {
117
- $self.addClass(DS_CLASSES.isSelected);
118
- updateRapidInfo();
119
- }
120
- } else {
121
- $self.addClass(DS_CLASSES.isSelected);
122
- updateNonRapidInfo();
123
- }
124
- }
125
-
126
- function initDateSelection() {
127
- const $self = $(DS_EL.dateSelection);
128
-
17
+ var init = function () {
129
18
  if (!$self.length) {
130
- return;
19
+ return;
131
20
  }
132
21
 
133
- $self.on('click', DS_EL.cell, selectTimeSlot);
134
- }
22
+ $self.on('click', cell, selectTimeSlot);
23
+ }
135
24
 
136
- var Wick = window.Wick || {};
25
+ init();
137
26
 
138
- Wick.DateSelection = {
139
- isDateSelected: () => isDateSelected,
140
- };
141
-
142
- $(document).ready(function () {
143
- initDateSelection();
144
- });
27
+ return {
28
+ isDateSelected: function(){
29
+ return isDateSelected;
30
+ }
31
+ }
32
+ })();
@@ -323,18 +323,6 @@ Wick.Forms = (function () {
323
323
  }
324
324
  }
325
325
 
326
- if ($(form).is('.notify-me-form')) {
327
- if ($(form).find('#notify-me-email').val().length) {
328
- return false;
329
- }
330
- }
331
-
332
- if ($(form).is('.add-list-id__form')) {
333
- if ($(form).find('#project-id').val().length) {
334
- return false;
335
- }
336
- }
337
-
338
326
  if ($(form).is('.header-search')) {
339
327
  window.location.href = './page_search-results.html';
340
328
  }
@@ -1,4 +1,4 @@
1
- window.Wick = window.Wick || {};
1
+ var Wick = Wick || {};
2
2
  Wick.MiniBasketData = (function () {
3
3
  return {
4
4
  updateQuantity: {
@@ -874,14 +874,14 @@ Wick.MiniBasketData = (function () {
874
874
  clickAndCollectOnly: false,
875
875
  deliveryItemsQuantity: 1,
876
876
  pickupItemsQuantity: 2,
877
- freeDelivery: false,
877
+ freeDelivery: true,
878
878
  subtotalWithoutCharity: {
879
879
  value: 19.0,
880
880
  formattedValue: '£19.00',
881
881
  currencyIso: 'GBP',
882
882
  formattedPriceWithoutCurrencySymbol: '19.00',
883
883
  },
884
- messageForFreeDelivery: null,
884
+ messageForFreeDelivery: 'Free delivery<i class="icon fas fa-check"></i>',
885
885
  pickupOrderGroups: [
886
886
  {
887
887
  entries: [
@@ -16,21 +16,20 @@ Wick.Calendar = {
16
16
  if ($(this).hasClass(Wick.Calendar.el.switchBtnEarlier)) {
17
17
  $currentCalendar = $currentCalendar.prev();
18
18
  $currentCalendar.removeClass(Wick.Calendar.el.dateSectionHidden);
19
+
19
20
  } else if ($(this).hasClass(Wick.Calendar.el.switchBtnLatest)) {
20
21
  $currentCalendar = $currentCalendar.next(Wick.Calendar.el.dateSection);
21
22
  $currentCalendar.removeClass(Wick.Calendar.el.dateSectionHidden);
22
23
  }
23
24
  },
25
+
24
26
  };
25
27
 
26
28
  $(document).ready(function () {
27
29
  function init() {
30
+
28
31
  if (Wick.checkLocalEnv) {
29
- $(Wick.Calendar.el.componentDateSection).on(
30
- 'click',
31
- Wick.Calendar.el.switchBtn,
32
- Wick.Calendar.SwitchCalendar
33
- );
32
+ $(Wick.Calendar.el.componentDateSection).on('click', Wick.Calendar.el.switchBtn, Wick.Calendar.SwitchCalendar);
34
33
  }
35
34
  }
36
35
 
@@ -40,11 +39,8 @@ $(document).ready(function () {
40
39
 
41
40
  init();
42
41
 
43
- $(window).on(
44
- 'resize',
45
- _.debounce(function () {
46
- unbind();
47
- init();
48
- }, 250)
49
- );
42
+ $(window).on('resize', _.debounce(function () {
43
+ unbind();
44
+ init();
45
+ }, 250));
50
46
  });
@@ -1,11 +1,10 @@
1
1
  import { updateDiscount } from '../components/discounts';
2
2
 
3
3
  const osEl = {
4
- totalSection: '.mini-basket__total',
4
+ $totalSection: $('.mini-basket__total'),
5
5
  checkoutWidgetDetailsDiscount: '.checkout-widget__details-discount',
6
6
  checkoutWidgetDetails: '.checkout-widget__details',
7
7
  delivery: '.checkout-widget__item-delivery',
8
- deliveryCostMessage: '.checkout-widget__item-delivery-cost-message',
9
8
  cc: '.checkout-widget__item-cc',
10
9
  itemFree: '.checkout-widget__item-free',
11
10
  itemDeficit: '.checkout-widget__item-deficit',
@@ -38,40 +37,26 @@ export function updateTotal(data, equalMap, isVoucher) {
38
37
  }
39
38
 
40
39
  function createCheckoutWidgetItem(obj) {
41
- const isDelivery = obj.item === osEl.delivery;
42
40
  return `
43
41
  <li class="checkout-widget__item ${obj.item.substr(1)}">
44
42
  <span>${obj.title}</span>
45
43
  <span class="checkout-widget__item-value">${obj.dataValue}</span>
46
44
  </li>
47
- ${
48
- isDelivery
49
- ? `
50
- <li class="checkout-widget__item checkout-widget__item-delivery-cost-message">
51
- <span class="checkout-widget__item-value" id="order-delivery-cost-message">
52
- Final delivery cost confirmed at checkout
53
- </span>
54
- </li>`
55
- : ''
56
- }
57
45
  `;
58
46
  }
59
47
 
60
48
  function hideUnusedDeliveryTypeCost(data, isVoucher) {
61
49
  $(osEl.delivery).show();
62
- $(osEl.deliveryCostMessage).show();
63
50
  $(osEl.cc).show();
64
51
  if (isVoucher) {
65
52
  if (!data.deliveryOrder) {
66
53
  $(osEl.delivery).hide();
67
- $(osEl.deliveryCostMessage).hide();
68
54
  } else if (!data.clickAndCollectOrder) {
69
55
  $(osEl.cc).hide();
70
56
  }
71
57
  } else {
72
58
  if (data.clickAndCollectOnly) {
73
59
  $(osEl.delivery).hide();
74
- $(osEl.deliveryCostMessage).hide();
75
60
  } else if (data.deliveryItemsQuantity > 0 && data.pickupItemsQuantity === 0) {
76
61
  $(osEl.cc).hide();
77
62
  }
@@ -79,7 +64,7 @@ function hideUnusedDeliveryTypeCost(data, isVoucher) {
79
64
  }
80
65
 
81
66
  function calculateFreeDelivery(data) {
82
- $(osEl.totalSection).each(function () {
67
+ osEl.$totalSection.each(function () {
83
68
  let $free = $(this).find(osEl.itemFree);
84
69
  let $deficit = $(this).find(osEl.itemDeficit);
85
70