wickes-css2 2.94.0-develop.13 → 2.94.0-develop.16

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 (67) hide show
  1. package/Readme.md +2 -2
  2. package/build/css/main.css +1 -1
  3. package/build/css/pages/checkout-new.css +1 -1
  4. package/build/css/pages/checkout.css +1 -1
  5. package/build/css/pages/page_checkout_delivery-new.css +1 -1
  6. package/build/css/pages/page_shopping-cart-v2.css +1 -1
  7. package/build/css/pdp-main-non-critical.css +1 -1
  8. package/build/js/basket.min.js +2 -2
  9. package/build/js/bundle.min.js +1 -1
  10. package/build/js/checkout.min.js +2 -2
  11. package/build/js/emulation.min.js +2 -2
  12. package/build/js/general.bundle.min.js +1 -1
  13. package/build/js/merged-checkout.min.js +2 -2
  14. package/build/js/page/basket/summary-mobile.js +22 -0
  15. package/build/js/page/basket-v2.js +13 -0
  16. package/build/js/page/components/order-summary.js +8 -1
  17. package/build/js/page/components/sticky-order-observer.js +49 -0
  18. package/build/js/page/components/voucher.js +1 -1
  19. package/build/js/pdp.bundle.min.js +1 -1
  20. package/build/js/plp.bundle.min.js +1 -1
  21. package/build/js/project-list.min.js +1 -1
  22. package/package.json +2 -10
  23. package/src/components/checkout-action.hbs +14 -11
  24. package/src/components/checkout-voucher-accordion.hbs +15 -0
  25. package/src/components/checkout_order-summary-new.hbs +5 -3
  26. package/src/components/checkout_voucher_large.hbs +20 -16
  27. package/src/components/order-summary.hbs +91 -56
  28. package/src/components/summary-mobile-bar.hbs +17 -0
  29. package/src/data/data_delivery-address-v2.json +1 -1
  30. package/src/js/components/general/is-trade-pro.js +15 -1
  31. package/src/js/emulation/basket-data.js +2 -2
  32. package/src/js/page/basket/summary-mobile.js +22 -0
  33. package/src/js/page/basket-v2.js +13 -0
  34. package/src/js/page/components/order-summary.js +8 -1
  35. package/src/js/page/components/sticky-order-observer.js +49 -0
  36. package/src/js/page/components/voucher.js +1 -1
  37. package/src/layouts/basket-new.hbs +1 -1
  38. package/src/layouts/checkout-new.hbs +1 -0
  39. package/src/page_checkout_confirmation-new-marketing-consent-error.html +0 -2
  40. package/src/page_checkout_delivery-address-customer-journey.html +0 -5
  41. package/src/page_checkout_delivery-address-v2.html +0 -4
  42. package/src/page_checkout_delivery-details-v2-asm.html +1 -5
  43. package/src/page_checkout_delivery-details-v2-calendar-message.html +0 -3
  44. package/src/page_checkout_delivery-details-v2-oos.html +0 -3
  45. package/src/page_checkout_delivery-details-v2-wisdom-not-available.html +0 -5
  46. package/src/page_checkout_delivery-details-v2-wisdom.html +0 -5
  47. package/src/page_checkout_delivery-details-with-loader-v2.html +0 -3
  48. package/src/page_checkout_delivery-details_guest-new.html +0 -5
  49. package/src/page_checkout_delivery_address-asm-new.html +0 -4
  50. package/src/page_checkout_next-day-delivery-details.html +0 -6
  51. package/src/page_checkout_payment-details-v2.html +1 -1
  52. package/src/page_checkout_payment-details_guest-with-checkout-journey.html +0 -2
  53. package/src/page_checkout_payment-details_login-with-checkout-journey.html +0 -2
  54. package/src/page_checkout_rapid-delivery-details.html +0 -6
  55. package/src/page_klarna_payment-details_with-klarna.html +3 -6
  56. package/src/page_payment-details-with-clearpay.html +1 -1
  57. package/src/page_payment-details_with_apple-pay.html +1 -1
  58. package/src/page_payment-details_with_google-pay.html +1 -1
  59. package/src/page_shopping-cart-v2.html +6 -16
  60. package/src/scss/components/_checkout-action.scss +132 -6
  61. package/src/scss/components/_order-summary.scss +329 -178
  62. package/src/scss/components/_sticky-element-appearance.scss +25 -0
  63. package/src/scss/helpers/_variables.scss +2 -0
  64. package/src/scss/main.scss +1 -0
  65. package/src/scss/pages/_checkout-widget.scss +137 -28
  66. package/src/scss/pages/page_checkout_delivery-new.scss +119 -10
  67. package/src/scss/pages/page_shopping-cart-v2.scss +137 -34
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "wickes-css2",
3
- "version": "2.94.0-develop.13",
3
+ "version": "2.94.0-develop.16",
4
4
  "description": "CSS and JS and page templates in use by Wickes",
5
5
  "main": "index.js",
6
6
  "scripts": {
@@ -108,15 +108,7 @@
108
108
  "branches": [
109
109
  "alt-master",
110
110
  {
111
- "name": "develop",
112
- "prerelease": true
113
- },
114
- {
115
- "name": "preprod",
116
- "prerelease": true
117
- },
118
- {
119
- "name": "custom-tag/*",
111
+ "name": "custom-tag/0.1.0-originals",
120
112
  "prerelease": "${name.replace(/^custom-tag\\//g, '')}"
121
113
  }
122
114
  ],
@@ -1,14 +1,15 @@
1
- <div class="checkout-action__wrapper {{mod}}">
1
+ <div class="checkout-action__wrapper {{lookup . "mod"}} {{view}}">
2
2
  {{#if head}}
3
3
  {{> checkout-section-title title=head}}
4
4
  {{/if}}
5
- <div class="checkout-action">
5
+ <div class="checkout-action {{#if container}}container{{/if}}">
6
6
  <div class="checkout-action__section">
7
7
  <a href="#" class="btn btn_full btn-action btn-checkout">
8
- Checkout
9
- <span class="icon">
10
- <i class="fas fa-arrow-right"></i>
11
- </span>
8
+ <span class="btn-wickes-checkout__label checkout-text--mixed">Checkout</span>
9
+ <span class="btn-wickes-checkout__label checkout-text--collect">Wickes Checkout</span>
10
+ <span class="icon">
11
+ <i class="fas fa-arrow-right"></i>
12
+ </span>
12
13
  </a>
13
14
  </div>
14
15
  <div class="checkout-action__section checkout-widget__basket-block">
@@ -23,13 +24,15 @@
23
24
  </div>
24
25
  </div>
25
26
  </a>
27
+ {{#unless hidePaypalEmail}}
26
28
  <div class="pay-pal_container-email">
27
- <div class="pay-pal_email-heading">Your PayPal email: </div>
28
- <div class="pay-pal_email-value">John.doe@gmail.com</div>
29
- <div class="pay-pal_email-link">
30
- <a href="#" title="" target="_blank">Don't use this email</a>
31
- </div>
29
+ <div class="pay-pal_email-heading">Your PayPal email: </div>
30
+ <div class="pay-pal_email-value">John.doe@gmail.com</div>
31
+ <div class="pay-pal_email-link">
32
+ <a href="#" title="" target="_blank">Don't use this email</a>
33
+ </div>
32
34
  </div>
35
+ {{/unless}}
33
36
  </div>
34
37
  </div>
35
38
  </div>
@@ -0,0 +1,15 @@
1
+ <li class="checkout-widget__voucher-accordion">
2
+ <div
3
+ class="checkout-widget__voucher-toggle collapsed"
4
+ data-toggle="collapse"
5
+ data-target="#checkout-voucher-accordion-{{id}}"
6
+ >
7
+ Got a voucher?
8
+ <span class="checkout-widget__icon">
9
+ <i class="fal fa-angle-up fa-2x"></i>
10
+ </span>
11
+ </div>
12
+ <div class="collapse" id="checkout-voucher-accordion-{{id}}">
13
+ {{> checkout_voucher_large id=id title=""}}
14
+ </div>
15
+ </li>
@@ -12,12 +12,13 @@
12
12
  {{/each}}
13
13
  {{else}}
14
14
  {{#each info}}
15
- <li class="checkout-widget__item {{#if mod}}checkout-widget__item-{{mod}}{{/if}}">
15
+ <li class="checkout-widget__item {{#if (lookup this "mod")}}checkout-widget__item-{{lookup this "mod"}}{{/if}}">
16
16
  <span>{{title}}</span>
17
17
  <span class="checkout-widget__item-value">{{value}}</span>
18
18
  </li>
19
19
  {{/each}}
20
20
  {{/if}}
21
+ {{> checkout-voucher-accordion id=id}}
21
22
  {{#if discounts}}
22
23
  <li class="checkout-widget__accordion-wrap checkout-widget__details-discount">
23
24
  <span class="checkout-widget__detail-name checkout-widget__detail-name_accordion collapsed" data-toggle="collapse"
@@ -35,7 +36,8 @@
35
36
  </li>
36
37
  {{/if}}
37
38
  </ul>
38
- <div class="checkout-widget__total">
39
+ {{#unless mobile}}
40
+ <div class="checkout-widget__total" data-sticky-observe>
39
41
  {{#if confirmationSummary}}
40
42
  <div> {{ confirmation-summary.total.title }}</div>
41
43
  <div class="checkout-widget__total-value">{{ confirmation-summary.total.value }}</div>
@@ -44,5 +46,5 @@
44
46
  <div class="checkout-widget__total-value">{{ total.value }}</div>
45
47
  {{/if}}
46
48
  </div>
47
-
49
+ {{/unless}}
48
50
  </div>
@@ -1,19 +1,23 @@
1
1
  <div class="voucher">
2
- {{#if title}}
3
- {{> checkout-section-title}}
4
- {{/if}}
5
- <div class="checkout-widget checkout-voucher checkout-voucher_fixed">
6
- <form id="form-checkout-voucher{{id}}">
7
- {{> form-row id=(concat 'voucher-code' id) label="Voucher" label-hidden="true" required="true" placeholder="Enter code"}}
8
- <button class="voucher__btn btn btn-secondary btn_full">
9
- <span class="btn__text">Apply</span>
10
- </button>
11
- </form>
2
+ {{#if title}}
3
+ {{> checkout-section-title}}
4
+ {{/if}}
5
+ <div class="checkout-widget checkout-voucher checkout-voucher_fixed">
6
+ <form id="form-checkout-voucher{{id}}">
7
+ {{> form-row id=(concat 'voucher-code' id) label="Voucher" label-hidden="true" required="true" placeholder="Enter code" info=""}}
8
+ <button class="voucher__btn btn btn-primary">
9
+ <span class="btn__text">Apply</span>
10
+ </button>
11
+ </form>
12
+ </div>
13
+ {{#unless voucherApplied}}
14
+ <div class="checkout-widget checkout-voucher voucher-applied checkout-voucher-hide">
15
+ <div class="voucher-applied__inner">
16
+ <span class="icon icon__check">
17
+ <i class="fas fa-check-circle"></i>
18
+ </span>
19
+ <h5 class="heading-5 text-center">Voucher has been applied</h5>
20
+ </div>
12
21
  </div>
13
- {{#unless voucherApplied}}
14
- <div class="checkout-widget checkout-voucher voucher-applied checkout-voucher-hide">
15
- <i class="fas fa-check-circle"></i>
16
- <h3 class="heading-3 text-center">Voucher has been applied</h3>
17
- </div>
18
- {{/unless}}
22
+ {{/unless}}
19
23
  </div>
@@ -1,66 +1,101 @@
1
+ {{#if basket}}
2
+ <div class="summary summary--mobile d-lg-none" id="summary-mobile-{{id}}">
3
+ {{> summary-mobile-bar}}
4
+ <div class="collapse summary__aside container" id="checkout-summary-mobile-accordion-{{id}}" data-sticky-element>
5
+
6
+ {{> checkout_order-summary-new head=title mod=mod id=(concat id "-mobile") mobile="true"}}
7
+ {{#unless basket}}
8
+ <div class="summary__payment footer-checkout">
9
+ {{#unless merged}}
10
+ {{#if paymentsCheckoutV2}}
11
+ <div class="footer-checkout-holder footer-checkout-holder--payways">
12
+ {{> payments-checkout-v2}}
13
+ </div>
14
+ {{else}}
15
+ <div class="footer-checkout-holder">
16
+ {{> payments-checkout clearPayIcon="true"}}
17
+ <span class="footer-checkout__copyright">
18
+ Copyright ©
19
+ <span class="current-year"></span> Wickes.co.uk
20
+ </span>
21
+ </div>
22
+ {{/if}}
23
+ {{else}}
24
+ <div class="summary__payment-message">
25
+ <p class="summary__payment-main">{{vat-message.main}}</p>
26
+ <p class="summary__payment-additional">{{vat-message.additional}}</p>
27
+ </div>
28
+ {{/unless}}
29
+ </div>
30
+ {{/unless}}
31
+ </div>
32
+ </div>
33
+ {{/if}}
34
+
35
+
1
36
  <div class="summary {{#if mod}}summary-large{{/if}} {{#if paymentsCheckoutV2 }}summary--payways{{/if}}">
2
- {{> checkout-section-title}}
3
- {{#if mod}}
4
- <div class="summary__accordion collapsed"
5
- data-toggle="collapse"
6
- data-target="#checkout-details-accordion-{{id}}"
7
- >
8
- <span class="summary__accordion-text">Show full summary</span>
9
- <span class="icon summary-icon-small">
37
+ {{> checkout-section-title}}
38
+ {{#if mod}}
39
+ <div class="summary__accordion collapsed"
40
+ data-toggle="collapse"
41
+ data-target="#checkout-details-accordion-{{id}}"
42
+ >
43
+ <span class="summary__accordion-text">Show full summary</span>
44
+ <span class="icon summary-icon-small">
10
45
  <i class="fas fa-angle-up"></i>
11
46
  </span>
12
- </div>
13
- {{/if}}
14
- <div class="summary__aside">
15
- {{> checkout_order-summary-new head=title mod=mod id=id}}
47
+ </div>
48
+ {{/if}}
49
+ <div class="summary__aside">
50
+ {{> checkout_order-summary-new head=title mod=mod id=id}}
16
51
 
17
- {{#if klarna-placement}}
18
- <div class="summary__klarna">
19
- <klarna-placement
20
- data-key="credit-promotion-badge"
21
- data-locale="en-GB"
22
- data-purchase-amount="12000"
23
- ></klarna-placement>
52
+ {{#if klarna-placement}}
53
+ <div class="summary__klarna">
54
+ <klarna-placement
55
+ data-key="credit-promotion-badge"
56
+ data-locale="en-GB"
57
+ data-purchase-amount="12000"
58
+ ></klarna-placement>
59
+ </div>
60
+ {{/if}}
61
+ {{#if clearpay-placement}}
62
+ {{> clearpay applyMargin=true hasKlarna=true}}
63
+ {{/if}}
64
+ {{#unless basket}}
65
+ <div class="summary__payment footer-checkout">
66
+ {{#unless merged}}
67
+ {{#if paymentsCheckoutV2 }}
68
+ <div class="footer-checkout-holder footer-checkout-holder--payways">
69
+ {{> payments-checkout-v2 }}
24
70
  </div>
25
- {{/if}}
26
- {{#if clearpay-placement}}
27
- {{> clearpay applyMargin=true hasKlarna=true}}
28
- {{/if}}
29
- {{#unless basket}}
30
- <div class="summary__payment footer-checkout">
31
- {{#unless merged}}
32
- {{#if paymentsCheckoutV2 }}
33
- <div class="footer-checkout-holder footer-checkout-holder--payways">
34
- {{> payments-checkout-v2 }}
35
- </div>
36
- {{else}}
37
- <div class="footer-checkout-holder">
38
- {{> payments-checkout clearPayIcon="true" }}
39
- <span class="footer-checkout__copyright">Copyright © <span class="current-year"></span> Wickes.co.uk</span>
40
- </div>
41
- {{/if}}
42
- {{else}}
43
- <div class="summary__payment-message">
44
- <p class="summary__payment-main">{{vat-message.main}}</p>
45
- <p class="summary__payment-additional">{{vat-message.additional}}</p>
46
- </div>
47
- {{/unless}}
71
+ {{else}}
72
+ <div class="footer-checkout-holder">
73
+ {{> payments-checkout clearPayIcon="true" }}
74
+ <span class="footer-checkout__copyright">Copyright © <span class="current-year"></span> Wickes.co.uk</span>
48
75
  </div>
76
+ {{/if}}
77
+ {{else}}
78
+ <div class="summary__payment-message">
79
+ <p class="summary__payment-main">{{vat-message.main}}</p>
80
+ <p class="summary__payment-additional">{{vat-message.additional}}</p>
81
+ </div>
49
82
  {{/unless}}
50
- </div>
83
+ </div>
84
+ {{/unless}}
85
+ </div>
51
86
 
52
- {{#if basket-id}}
53
- <div class="summary__basked-id">
54
- Basket ID: <span class="id-number">136589003</span>
55
- </div>
56
- {{/if}}
87
+ {{#if basket-id}}
88
+ <div class="summary__basked-id">
89
+ Basket ID: <span class="id-number">136589003</span>
90
+ </div>
91
+ {{/if}}
57
92
 
58
- {{#if email}}
59
- <div class="summary__email">
60
- <h3 class="heading-3">Email</h3>
61
- <div class="summary__email-info">
62
- Examplemail@wickes.co.uk
63
- </div>
64
- </div>
65
- {{/if}}
93
+ {{#if email}}
94
+ <div class="summary__email">
95
+ <h3 class="heading-3">Email</h3>
96
+ <div class="summary__email-info">
97
+ Examplemail@wickes.co.uk
98
+ </div>
99
+ </div>
100
+ {{/if}}
66
101
  </div>
@@ -0,0 +1,17 @@
1
+ <div class="summary__mobile-bar" data-sticky-element>
2
+ <div class="summary__mobile-order collapsed"
3
+ data-toggle="collapse"
4
+ aria-expanded="false"
5
+ data-target="#checkout-summary-mobile-accordion-{{id}}">
6
+ <div class="summary__mobile-container container">
7
+ <span class="summary__mobile-bar-label">Order Summary</span>
8
+ <div class="summary__icon-container">
9
+ <span class="summary__mobile-bar-total">{{ total.value }}</span>
10
+ <span class="summary__icon summary__icon-up">
11
+ <i class="fal fa-angle-up fa-2x"></i>
12
+ </span>
13
+ </div>
14
+ </div>
15
+ </div>
16
+ {{> checkout-action container="true" hidePaypalEmail="true"}}
17
+ </div>
@@ -9,7 +9,7 @@
9
9
  "mod": "bold"
10
10
  },
11
11
  {
12
- "title": "Includes VAT:",
12
+ "title": "VAT:",
13
13
  "value": "£71.66",
14
14
  "mod": "vat"
15
15
  },
@@ -21,4 +21,18 @@ $(document).ready(function () {
21
21
  if (navigator.userAgent.match(/TradeProMobile_iOS|TradeProMobile_Android|DIYMobile_iOS|DIYMobile_Android/i)) {
22
22
  $('body').addClass('tp-app');
23
23
  }
24
- });
24
+ });
25
+
26
+ $(function() {
27
+ if (Wick.isTradeProAndroid) {
28
+ $('body').addClass('tp-android');
29
+ }
30
+ if (Wick.isTradeProiOS) {
31
+ $('body').addClass('tp-ios');
32
+ if (
33
+ window.matchMedia('(min-width: 768px)').matches
34
+ ) {
35
+ $('body').addClass('tp-ios-notch');
36
+ }
37
+ }
38
+ });
@@ -43,7 +43,7 @@ Wick.BasketData = (function () {
43
43
  "status": 400,
44
44
  "responseJSON": {
45
45
  "globalMessage": {
46
- "message": "Delivery is already free. Coupon can’t be applied",
46
+ "message": "Delivery is already free.\nCoupon can’t be applied."
47
47
  }
48
48
  }
49
49
  },
@@ -444,7 +444,7 @@ Wick.BasketData = (function () {
444
444
  "appliedOrderPromotions": [],
445
445
  "promotionsInfo": null,
446
446
  "clickAndCollectOnly": true,
447
- "deliveryItemsQuantity": 0,
447
+ "deliveryItemsQuantity": 1,
448
448
  "pickupItemsQuantity": 2,
449
449
  "freeDelivery": false,
450
450
  "subtotalWithoutCharity": {"value": 19.0, "formattedValue": "£19.00", "currencyIso": "GBP", "formattedPriceWithoutCurrencySymbol": "19.00"},
@@ -0,0 +1,22 @@
1
+ const summaryMobileEl = {
2
+ summaryAside: '.summary__aside',
3
+ backToTop : '#back-to-top',
4
+ canDisplayPayPal: '#canDisplayPayPalOnBasketPage',
5
+ };
6
+
7
+ export function addClassToSummaryAside(data) {
8
+ const payPalEnabled = data?.paymentInfos?.payPalEnabled;
9
+ const clickAndCollectOnly = data.clickAndCollectOnly;
10
+ const canDisplayPayPal = $(summaryMobileEl.canDisplayPayPal).val() === 'true';
11
+ const isPayPalAllowed = payPalEnabled && clickAndCollectOnly && canDisplayPayPal;
12
+ const $aside = $(summaryMobileEl.summaryAside);
13
+ const $backToTop = $(summaryMobileEl.backToTop);
14
+
15
+ if (isPayPalAllowed === false) {
16
+ $aside.addClass('single-button');
17
+ $backToTop.addClass('single-button');
18
+ } else {
19
+ $aside.removeClass('single-button');
20
+ $backToTop.removeClass('single-button');
21
+ }
22
+ }
@@ -29,6 +29,8 @@ import {
29
29
  } from './basket/session-sync'
30
30
  import {displayEnergyEfficiency} from "./basket/display-energy-efficiency";
31
31
  import {appendLoader, hideLoader, showLoader} from "./utils/loader";
32
+ import {addClassToSummaryAside} from "./basket/summary-mobile";
33
+ import { initStickyObserver } from './components/sticky-order-observer';
32
34
 
33
35
  var Wick = window.Wick || {};
34
36
  Wick.BasketPage = {
@@ -384,6 +386,7 @@ Wick.BasketPage = {
384
386
  } else {
385
387
  if (initial) {
386
388
  Wick.BasketPage.getCartEntries(Wick.BasketData.updateCart);
389
+ addClassToSummaryAside(Wick.BasketData.updateCart);
387
390
  const initialTotalPrice = Wick.BasketData.updateCart.totalPrice.value;
388
391
  updateClearpayVisibility(initialTotalPrice);
389
392
  } else {
@@ -405,6 +408,7 @@ Wick.BasketPage = {
405
408
  updateClearpayPlacements(Wick.BasketData.updateCart.totalPrice.value);
406
409
  updateClearpayVisibility(Wick.BasketData.updateCart.totalPrice.value);
407
410
  Wick.BasketPage.addPotentialPromo(Wick.BasketData.updateCart);
411
+ addClassToSummaryAside(Wick.BasketData.updateCart);
408
412
  Wick.BasketPage.getCartEntries(Wick.BasketData.updateCart);
409
413
  Wick.BasketPage.checkProductArrays(Wick.BasketData.updateCart) || Wick.BasketPage.removeOrderItem(repaintData);
410
414
  updateBasketSession();
@@ -415,6 +419,7 @@ Wick.BasketPage = {
415
419
  },
416
420
  updateCartAction: function (response, info) {
417
421
  updateClearpayVisibility(response.totalPrice.value)
422
+ addClassToSummaryAside(response)
418
423
  if (info.initial) {
419
424
  Wick.BasketPage.getCartEntries(response);
420
425
  } else {
@@ -1257,6 +1262,9 @@ Wick.BasketPage = {
1257
1262
  $(Wick.BasketPage.el.content).find(quantityButton).prop('disabled', false);
1258
1263
  }
1259
1264
  };
1265
+
1266
+ $(document).on('cartUpdate', initStickyObserver);
1267
+
1260
1268
  $(document).ready(function () {
1261
1269
  function init() {
1262
1270
 
@@ -1291,6 +1299,11 @@ $(document).ready(function () {
1291
1299
 
1292
1300
  $(Wick.BasketPage.el.voucherRemove).unbind('click');
1293
1301
  Wick.BasketPage.paintActionButton();
1302
+ initStickyObserver(
1303
+ $('[data-sticky-observe]'),
1304
+ $('[data-sticky-element]'),
1305
+ '.summary__aside.collapse.show'
1306
+ );
1294
1307
  Wick.BasketPage.updateCart(...Array(3), true);
1295
1308
  setDefaultCharityValue();
1296
1309
  if (!$(Wick.BasketPage.el.loader).length) {
@@ -1,4 +1,5 @@
1
1
  import {updateDiscount} from "./discounts";
2
+ import {addClassToSummaryAside} from "../basket/summary-mobile";
2
3
 
3
4
  const osEl = {
4
5
  $summarySection: $('.summary'),
@@ -9,9 +10,9 @@ const osEl = {
9
10
  itemFree: '.checkout-widget__item-free',
10
11
  itemDeficit: '.checkout-widget__item-deficit',
11
12
  summaryDelivery: '.checkout-widget__item-delivery',
13
+ summaryMobileTotal: '.summary__mobile-bar-total',
12
14
  }
13
15
 
14
-
15
16
  export function updateOrderSummary(data, equalMap, isVoucher) {
16
17
  equalMap.forEach((obj) => {
17
18
  if ($(obj.item).length) {
@@ -32,9 +33,12 @@ export function updateOrderSummary(data, equalMap, isVoucher) {
32
33
  }
33
34
  })
34
35
 
36
+ const value = data.totalPrice?.formattedValue || data.total;
37
+
35
38
  updateDiscount(data, isVoucher);
36
39
  hideUnusedDeliveryTypeCost(data, isVoucher);
37
40
  calculateFreeDelivery(data);
41
+ updateSummaryMobileBarTotal(value);
38
42
  }
39
43
 
40
44
  function createCheckoutWidgetItem(obj) {
@@ -97,3 +101,6 @@ function calculateFreeDelivery(data) {
97
101
  })
98
102
  }
99
103
 
104
+ function updateSummaryMobileBarTotal(formattedValue) {
105
+ $(osEl.summaryMobileTotal).text(formattedValue);
106
+ }
@@ -0,0 +1,49 @@
1
+ export function initStickyObserver(observedElements, stickyElements, collapseSelector) {
2
+ let io;
3
+
4
+ const $observed = observedElements instanceof jQuery
5
+ ? observedElements
6
+ : $(observedElements);
7
+
8
+ const $sticky = stickyElements instanceof jQuery
9
+ ? stickyElements
10
+ : $(stickyElements);
11
+
12
+ if (!$observed.length || !$sticky.length) return;
13
+
14
+ function toggle(hide) {
15
+ $sticky.toggleClass('is-hidden', hide);
16
+ $('body').toggleClass('summary-hidden', hide);
17
+ if (hide) {
18
+ $(collapseSelector).collapse('hide');
19
+ }
20
+ }
21
+
22
+ if ('IntersectionObserver' in window) {
23
+ io = new IntersectionObserver(
24
+ entries => {
25
+ const anyInView = entries.some(e => e.isIntersecting);
26
+ toggle(anyInView);
27
+ },
28
+ { rootMargin: '0px 0px -20% 0px', threshold: 0 }
29
+ );
30
+ $observed.each((_, el) => io.observe(el));
31
+ } else {
32
+ // Fallback for older browsers
33
+ function check() {
34
+ let anyInView = false;
35
+ $observed.each(function () {
36
+ const r = this.getBoundingClientRect();
37
+ if (r.top < window.innerHeight * 0.8 && r.bottom > 0) {
38
+ anyInView = true;
39
+ return false; // break
40
+ }
41
+ });
42
+ toggle(anyInView);
43
+ }
44
+ $(window)
45
+ .off('scroll.sticky resize.sticky')
46
+ .on('scroll.sticky resize.sticky', check);
47
+ check();
48
+ }
49
+ }
@@ -15,7 +15,7 @@ const voucherEl = {
15
15
  formInvalid: 'form_invalid',
16
16
  fieldRow: '.form-row[data-row-required]',
17
17
  rowValidationError: 'form-row_validation-error',
18
- voucherHide: '.checkout-voucher-hide',
18
+ voucherHide: 'checkout-voucher-hide',
19
19
  fieldError: '.form-row__error',
20
20
  subtotal: '.checkout-widget__item-bold',
21
21
  vat: '.checkout-widget__item-vat',
@@ -38,7 +38,7 @@
38
38
  {{#block "prefooter"}}{{/block}}
39
39
  </main>
40
40
  {{#block "footer"}}
41
- {{> footer-checkout-v2 }}
41
+ {{> footer-checkout-v2}}
42
42
  {{/block}}
43
43
  {{#block "foot"}}
44
44
  {{> scripts }}
@@ -42,6 +42,7 @@
42
42
  {{/block}}
43
43
  {{#block "foot"}}
44
44
  {{> scripts }}
45
+ <script src="./js/checkout.min.js"></script>
45
46
  {{/block}}
46
47
  </body>
47
48
  </html>
@@ -61,8 +61,6 @@
61
61
  </div>
62
62
  </div>
63
63
 
64
- {{> checkout_voucher_large title="Voucher Code"}}
65
-
66
64
  <div class="continue-btn">
67
65
  <button class="btn btn-action">Continue to Payment Details</button>
68
66
  </div>
@@ -36,8 +36,6 @@
36
36
  </div>
37
37
  </div>
38
38
 
39
- {{> checkout_voucher_large title="Voucher Code" id="0"}}
40
-
41
39
  <div class="continue-btn">
42
40
  <button class="btn btn-action">Continue to Delivery Details</button>
43
41
  </div>
@@ -47,7 +45,6 @@
47
45
  {{#content "foot" mode="append"}}
48
46
  <script defer src="./js/page/checkout-confirmation-new.js"></script>
49
47
  <script defer src="./js/page/select-address.js"></script>
50
- <script src="./js/checkout.min.js"></script>
51
48
 
52
49
  {{#extend "modal" classMod="edit-delivery-address" id="modalDeliveryEdit" title="Edit delivery address" fullWidth=true}}
53
50
  {{#content "body"}}
@@ -67,5 +64,3 @@
67
64
 
68
65
  {{/content}}
69
66
  {{/extend}}
70
-
71
-
@@ -32,9 +32,6 @@
32
32
  </div>
33
33
  </div>
34
34
 
35
-
36
- {{> checkout_voucher_large title="Voucher Code" id="0"}}
37
-
38
35
  <div class="continue-btn">
39
36
  <button class="btn btn-action">Continue to Delivery Details</button>
40
37
  </div>
@@ -43,6 +40,5 @@
43
40
 
44
41
  {{#content "foot" mode="append"}}
45
42
  <script defer src="./js/page/checkout-confirmation-new.js"></script>
46
- <script src="./js/checkout.min.js"></script>
47
43
  {{/content}}
48
44
  {{/extend}}
@@ -1,4 +1,4 @@
1
- {{#extend "checkout" pageClass="page_checkout-delivery-new page_checkout-confirmation-new" title="Checkout - Delivery details" isAsideSticky="true"}}
1
+ {{#extend "checkout" pageClass="page_checkout-delivery-new page_checkout-confirmation-new page_checkout" title="Checkout - Delivery details" isAsideSticky="true"}}
2
2
  {{#content "steps"}}
3
3
  {{> steps active-step-index="2" }}
4
4
  {{/content}}
@@ -117,8 +117,6 @@
117
117
  </button>
118
118
  </div>
119
119
 
120
- {{> checkout_voucher_large title="Voucher Code"}}
121
-
122
120
  <div class="continue-btn">
123
121
  <button class="btn btn-action">Continue to Payment Details</button>
124
122
  </div>
@@ -146,5 +144,3 @@
146
144
 
147
145
  {{/content}}
148
146
  {{/extend}}
149
-
150
-