wickes-css2 2.98.0-develop.8 → 2.98.0-develop.9

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 (114) hide show
  1. package/Readme.md +4 -3
  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/components/global-search.css +1 -1
  5. package/build/css/components/loader.css +1 -1
  6. package/build/css/components/price-block-v2-critical.css +1 -1
  7. package/build/css/components/price-block-v2.css +1 -1
  8. package/build/css/homepage-main.css +1 -1
  9. package/build/css/main.css +1 -1
  10. package/build/css/my-account-main-v2.css +1 -1
  11. package/build/css/my-account-main.css +1 -1
  12. package/build/css/pages/checkout-new.css +1 -1
  13. package/build/css/pages/checkout.css +1 -1
  14. package/build/css/pages/my-account-v2.css +1 -1
  15. package/build/css/pages/page_home.css +1 -1
  16. package/build/css/pages/page_my-order.css +1 -1
  17. package/build/css/pages/page_my-orders.css +1 -1
  18. package/build/css/pages/page_wismo-details.css +1 -1
  19. package/build/css/pdp-main-before-combine.css +1 -1
  20. package/build/css/pdp-main-critical.css +1 -1
  21. package/build/css/pdp-main-non-critical.css +1 -1
  22. package/build/css/pdp-main.css +1 -1
  23. package/build/css/plp-main.css +1 -1
  24. package/build/css/store-locator-main.css +1 -1
  25. package/build/img/billie-logo.svg +4 -0
  26. package/build/img/billie-modal.svg +4 -0
  27. package/build/img/billie-pdp.svg +11 -0
  28. package/build/img/billie-spinner.svg +5 -0
  29. package/build/img/billie.svg +4 -0
  30. package/build/img/calm-primary-logo.png +0 -0
  31. package/build/img/payment/checkout/billie.svg +4 -0
  32. package/build/img/payment/footer/billie.svg +4 -0
  33. package/build/js/basket.min.js +1 -1
  34. package/build/js/emulation.min.js +23 -11
  35. package/build/js/page/basket-v2.js +16 -7
  36. package/build/js/page/billie-business-type.js +34 -0
  37. package/build/js/page/checkout-payment-details.js +8 -0
  38. package/build/js/page/components/charity.js +58 -43
  39. package/build/js/page/components/modal-observer.js +51 -0
  40. package/package.json +1 -1
  41. package/src/components/address-billie.hbs +42 -0
  42. package/src/components/address-postcode-look-up.hbs +2 -2
  43. package/src/components/basket-charity-donations-new.hbs +40 -0
  44. package/src/components/billie-modal.hbs +41 -0
  45. package/src/components/billie-online-messaging.hbs +14 -0
  46. package/src/components/checkout-edit-billing-address.hbs +20 -6
  47. package/src/components/checkout-payment-details-v2.hbs +94 -55
  48. package/src/components/checkout-payment-info-block.hbs +49 -0
  49. package/src/components/checkout-payment-option.hbs +40 -0
  50. package/src/components/checkout_payment-new.hbs +10 -1
  51. package/src/components/donation-cart-new.hbs +38 -0
  52. package/src/components/modal.hbs +4 -1
  53. package/src/components/my-account/active-orders/list-orders.hbs +1 -1
  54. package/src/components/my-account/active-orders/order.hbs +2 -0
  55. package/src/components/my-account/active-orders/payment-status.hbs +17 -0
  56. package/src/components/my-account/payment-status.hbs +19 -0
  57. package/src/components/order-summary.hbs +3 -0
  58. package/src/components/payment-loader.hbs +59 -21
  59. package/src/components/payments-checkout-v2.hbs +12 -6
  60. package/src/components/payments-checkout.hbs +6 -0
  61. package/src/components/payments.hbs +10 -4
  62. package/src/components/price-block-v2.hbs +13 -8
  63. package/src/components/wismo-payment.hbs +16 -0
  64. package/src/data/data_shopping-cart-v2.json +51 -0
  65. package/src/data/data_wismo.json +53 -0
  66. package/src/data/my-account/data_my-account.json +57 -0
  67. package/src/elements/radiobutton.hbs +7 -0
  68. package/src/img/billie-logo.svg +4 -0
  69. package/src/img/billie-modal.svg +4 -0
  70. package/src/img/billie-pdp.svg +11 -0
  71. package/src/img/billie-spinner.svg +5 -0
  72. package/src/img/billie.svg +4 -0
  73. package/src/img/calm-primary-logo.png +0 -0
  74. package/src/img/payment/checkout/billie.svg +4 -0
  75. package/src/img/payment/footer/billie.svg +4 -0
  76. package/src/js/emulation/paymentLoader.js +22 -11
  77. package/src/js/page/basket-v2.js +16 -7
  78. package/src/js/page/billie-business-type.js +34 -0
  79. package/src/js/page/checkout-payment-details.js +8 -0
  80. package/src/js/page/components/charity.js +58 -43
  81. package/src/js/page/components/modal-observer.js +51 -0
  82. package/src/page_basket-billie.html +54 -0
  83. package/src/page_checkout_confirmation-billie.html +339 -0
  84. package/src/page_checkout_delivery-address-customer-journey.html +2 -2
  85. package/src/page_my-account.html +1 -0
  86. package/src/page_my-order.html +1 -1
  87. package/src/page_payment-details-with-billie.html +67 -0
  88. package/src/page_product-details-billie.html +87 -0
  89. package/src/page_shopping-cart-v2.html +4 -3
  90. package/src/page_wismo-details.html +2 -2
  91. package/src/partials/head.hbs +1 -5
  92. package/src/scss/common/_app.scss +0 -1
  93. package/src/scss/common/_elements.scss +4 -0
  94. package/src/scss/components/_billie-modal.scss +181 -0
  95. package/src/scss/components/_billie-online-messaging.scss +46 -0
  96. package/src/scss/components/_charity-donations.scss +114 -186
  97. package/src/scss/components/_donation-cart-new.scss +192 -0
  98. package/src/scss/components/_payments-checkout.scss +2 -1
  99. package/src/scss/components/_payments-v2.scss +8 -0
  100. package/src/scss/components/_tooltip.scss +19 -0
  101. package/src/scss/components/checkout-payment-details-v2.scss +237 -0
  102. package/src/scss/components/loader.scss +8 -0
  103. package/src/scss/components/my-account/_active-orders.scss +2 -0
  104. package/src/scss/components/my-account/_payment-status.scss +84 -0
  105. package/src/scss/components/price-block-v2-critical.scss +4 -0
  106. package/src/scss/components/price-block-v2.scss +4 -0
  107. package/src/scss/pages/_checkout-confirmation-new.scss +10 -3
  108. package/src/scss/pages/checkout-new.scss +3 -0
  109. package/src/scss/pages/my-account-v2.scss +2 -0
  110. package/src/scss/pages/page_wismo-details.scss +1 -0
  111. package/src/scss/pdp-main-critical.scss +1 -0
  112. package/src/scss/pdp-main.scss +2 -0
  113. package/src/sitemap.html +31 -2
  114. package/src/page_shopping-cart-charity.html +0 -56
@@ -6192,20 +6192,32 @@ $(document).ready(function () {
6192
6192
  initMyOrdersEvent();
6193
6193
  });
6194
6194
 
6195
- const paymentLoader = '.payment-loader';
6196
- const paymentLoaderHideClass = 'payment-loader--hidden';
6197
- const applePayButton = '.apple__button';
6198
- const googlePayButton = '.google__button';
6199
- const clearPayRadioButton = '#checkout-payment-details-clearpay';
6195
+ const paymentLoader= '.payment-loader';
6196
+ const paymentLoaderHideClass= 'payment-loader--hidden';
6197
+ const paymentLoaderModal = '.payment-loader__modal'
6198
+ const paymentTypeSelectors = {
6199
+ apple: '.apple__button',
6200
+ google: '.google__button',
6201
+ clearpay: '#checkout-payment-details-clearpay',
6202
+ billie: '#checkout-payment-details-billie, .billie__button',
6203
+ paypal: '#checkout-payment-details-paypal'
6204
+ };
6200
6205
 
6201
- const showPaymentLoader = () => {
6206
+ function showPaymentLoader(paymentType) {
6207
+ $(paymentLoader).find(`${paymentLoaderModal} > div`).hide();
6208
+ $(`.${paymentType}-checkout-logo`).show();
6209
+ $(`${paymentLoader} .spinner`).show();
6202
6210
  $(paymentLoader).removeClass(paymentLoaderHideClass);
6203
- setTimeout(() => $(paymentLoader).addClass(paymentLoaderHideClass), 1000);
6204
- };
6205
6211
 
6206
- $(document).on('click', applePayButton, showPaymentLoader);
6207
- $(document).on('click', googlePayButton, showPaymentLoader);
6208
- $(document).on('click', clearPayRadioButton, showPaymentLoader);
6212
+ setTimeout(() => {
6213
+ $(paymentLoader).addClass(paymentLoaderHideClass);
6214
+ }, 1000);
6215
+ }
6216
+
6217
+ Object.entries(paymentTypeSelectors).forEach(([type, triggerSelector]) => {
6218
+ $(document).on('click', triggerSelector, () => showPaymentLoader(type));
6219
+ });
6220
+
6209
6221
  var Wick = Wick || {};
6210
6222
 
6211
6223
  Wick.pdfFileLoader = {
@@ -16,8 +16,8 @@ import {checkPayPalAvailability} from './basket/paypal';
16
16
  import {
17
17
  updateCharity,
18
18
  changeCharityPrice,
19
- toggleCharityElements,
20
- setDefaultCharityValue
19
+ setDefaultCharityValue,
20
+ initCharityInteractions,
21
21
  } from './components/charity';
22
22
  import {callAction} from './utils/http-action';
23
23
  import {ROUTES} from './utils/routes';
@@ -29,8 +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
32
  import { initStickyObserver } from './components/sticky-order-observer';
33
+ import {addClassToSummaryAside} from "./basket/summary-mobile";
34
34
 
35
35
  var Wick = window.Wick || {};
36
36
  Wick.BasketPage = {
@@ -80,7 +80,7 @@ Wick.BasketPage = {
80
80
  orderItemInfoOffers: 'order-item__info-offers',
81
81
  charityInput: '#donation',
82
82
  charityItem: '.charity-new',
83
- donationCartBtn: '.donation-cart__btn',
83
+ donationCartBtn: '.donation-cart__btn, .donation-cart-new__btn',
84
84
  checkoutWidgetDetails: '.checkout-widget__details',
85
85
  checkoutWidgetDetailsFlex: 'checkout-widget__details-flex',
86
86
  subtotal: '.checkout-widget__item-bold',
@@ -311,7 +311,6 @@ Wick.BasketPage = {
311
311
  } else {
312
312
  if (charity) {
313
313
  Wick.BasketPage.updateCart();
314
- quantityToUpdate === 0 && toggleCharityElements();
315
314
  } else {
316
315
  if (maxValue > 1 || minValue > 1) {
317
316
  if (quantityToUpdate > maxValue || quantityToUpdate < minValue) {
@@ -1282,8 +1281,16 @@ $(document).ready(function () {
1282
1281
  $(Wick.BasketPage.el.content).on('focusout', Wick.BasketPage.el.quantityValue, Wick.BasketPage.changeOnBlur);
1283
1282
  $(Wick.BasketPage.el.content).on('click', Wick.BasketPage.el.deliveryButtonInCC, Wick.BasketPage.changeMethodToDelivery);
1284
1283
  $(Wick.BasketPage.el.content).on('click', Wick.BasketPage.el.updateStoreButton, Wick.BasketPage.changeMethodToCC);
1285
- $(Wick.BasketPage.el.charityInput).on('click', updateCharity);
1286
- $(Wick.BasketPage.el.donationCartBtn).on('click', changeCharityPrice);
1284
+ $(Wick.BasketPage.el.donationCartBtn).on('click', function(e) {
1285
+ e.preventDefault();
1286
+ const context = $(this).closest(Wick.BasketPage.el.charityItem);
1287
+ if (!context.hasClass('charity-added')) {
1288
+ updateCharity(this);
1289
+ context.addClass('charity-added');
1290
+ } else {
1291
+ changeCharityPrice.call(this);
1292
+ }
1293
+ });
1287
1294
  $(Wick.BasketPage.el.charityItem).on('click', Wick.BasketPage.el.removeButton, updateCharity);
1288
1295
  $(Wick.BasketPage.el.orderSummary).on('click', Wick.BasketPage.el.voucherRemove, voucherRemove);
1289
1296
  $(Wick.BasketPage.el.promoWrapper).on('click', Wick.BasketPage.el.promoClose, Wick.BasketPage.removePromotion);
@@ -1305,7 +1312,9 @@ $(document).ready(function () {
1305
1312
  '.summary__aside.collapse.show'
1306
1313
  );
1307
1314
  Wick.BasketPage.updateCart(...Array(3), true);
1315
+
1308
1316
  setDefaultCharityValue();
1317
+ initCharityInteractions();
1309
1318
  if (!$(Wick.BasketPage.el.loader).length) {
1310
1319
  appendLoader(Wick.BasketPage.loaderPayload);
1311
1320
  }
@@ -0,0 +1,34 @@
1
+ var Wick = window.Wick || {};
2
+
3
+ Wick.BusinessType = {
4
+ el: {
5
+ radios: 'input[name="businessType"]',
6
+ panels: '.radio-expanded-content'
7
+ },
8
+
9
+ refreshPanels() {
10
+ const $radios = $(this.el.radios);
11
+ const $panels = $(this.el.panels);
12
+ const selectedValue = $radios.filter(':checked').val();
13
+
14
+ $panels.hide();
15
+ $(`#${selectedValue}-fields`).show();
16
+ },
17
+
18
+ bindEvents() {
19
+ $(this.el.radios).on('change', this.refreshPanels.bind(this));
20
+ },
21
+
22
+ init() {
23
+ if (!$(this.el.radios).length) {
24
+ return;
25
+ }
26
+
27
+ this.refreshPanels();
28
+ this.bindEvents();
29
+ }
30
+ };
31
+
32
+ $(document).ready(function () {
33
+ Wick.BusinessType.init();
34
+ });
@@ -62,6 +62,14 @@ Wick.CheckoutPaymentDetails = (function() {
62
62
  case 'klarna':
63
63
  hideBillingAddres();
64
64
  break;
65
+ case 'billie':
66
+ detailsLabel = {
67
+ ...detailsLabel,
68
+ labelText: 'Name on Billie account',
69
+ buttonText: 'Pay with Billie'
70
+ }
71
+ changeLabelText(detailsLabel);
72
+ break;
65
73
  case 'clearpay':
66
74
  detailsLabel = {
67
75
  ...detailsLabel,
@@ -8,34 +8,47 @@ const charityEl = {
8
8
  charityInput: '#donation',
9
9
  charityTitleWrap: '.title-wrap',
10
10
  donationCart: '.donation-cart',
11
- donationCartBtn: '.donation-cart__btn',
12
- donationCartHolder: '.donation-cart__holder',
13
11
  donationCartHide: 'donation-cart__hide',
14
- donationCartValue: '.donation-cart__value',
12
+ donationCartBtn: '.donation-cart__btn, .donation-cart-new__btn',
13
+ donationCartBtnSelected: '.donation-cart-new__btn.btn-selected',
14
+ donationCartHolder: '.donation-cart__holder, .donation-cart-new__holder',
15
+ donationCartValue: '.donation-cart__value, .donation-cart-new__value',
15
16
  charityAdded: 'charity-added',
17
+ donationCartCostBlock: '.donation-cart-new__cost',
18
+ donationCartCostBlockHide: 'donation-cart-new__cost-hide',
19
+ donationCartRemove: '.donation-cart-new__cost .order-item__remove',
16
20
  }
17
21
 
18
- export function updateCharity() {
19
- //checkbox action
22
+ export function updateCharity(button) {
20
23
  if ($('#donation').attr('disabled') === 'disabled') {
21
- $('#donation').removeAttr('disabled')
24
+ $('#donation').removeAttr('disabled');
22
25
  } else {
23
26
  $('#donation').prop('disabled', (_, value) => !value);
24
27
  }
25
28
 
26
- const context = getCurrentCharityItem(this);
29
+ const context = getCurrentCharityItem(button);
27
30
  const productCode = getCurrentProductCode(context);
31
+ const quantity = getSelectedCharityAmount(button);
28
32
 
29
33
  showLoader('.basket-loader');
30
34
 
31
35
  if (context.hasClass(charityEl.charityAdded)) {
32
- $(this).removeAttr('checked');
36
+ $(button).removeAttr('checked');
33
37
  } else {
34
- $(this).attr('checked', 'checked');
35
- charityActionForAdd(productCode);
38
+ $(button).attr('checked', 'checked');
39
+ repaintCharityButton(button);
40
+ context
41
+ .find(charityEl.donationCartValue)
42
+ .text(quantity);
43
+ showDonationCostBlock(context);
44
+ charityActionForAdd(productCode, quantity);
36
45
  }
37
46
  }
38
47
 
48
+ function getSelectedCharityAmount(context) {
49
+ return $(context).data('value');
50
+ }
51
+
39
52
  function getCurrentCharityItem(context) {
40
53
  return $(context).closest(charityEl.charityItem);
41
54
  }
@@ -44,13 +57,13 @@ function getCurrentProductCode(context) {
44
57
  return context.find('input[name="productCode"]').val();
45
58
  }
46
59
 
47
- export function charityActionForAdd(value) {
60
+ export function charityActionForAdd(value, quantity) {
48
61
  if (!Wick.checkLocalEnv) {
49
62
  const payload = {
50
63
  url: ROUTES.CHARITY_ADD,
51
64
  queries: {
52
65
  productCodePost: value,
53
- qty: getDefaultCharityAmount(),
66
+ qty: quantity,
54
67
  },
55
68
  type: 'POST',
56
69
  };
@@ -61,19 +74,10 @@ export function charityActionForAdd(value) {
61
74
 
62
75
  callAction(payload, executeCharityAction, productInfo);
63
76
  } else {
64
- toggleCharityElements();
65
77
  Wick.BasketPage.updateCart(...Array(2), true);
66
78
  }
67
79
  }
68
80
 
69
- export function toggleCharityElements() {
70
- if ($(charityEl.charityItem).hasClass(charityEl.charityAdded)) {
71
- $(charityEl.charityInput).prop('checked', false);
72
- }
73
- $(charityEl.charityItem).toggleClass(charityEl.charityAdded);
74
- $(charityEl.charityItem).hasClass(charityEl.charityMultiple) && toggleMultipleCharityChoose($(charityEl.charityItem));
75
- }
76
-
77
81
  function executeCharityAction(response, productInfo) {
78
82
  if (response.addedProducts && response.addedProducts[0]) {
79
83
  productInfo.quantity = response.addedProducts[0].qty;
@@ -81,7 +85,6 @@ function executeCharityAction(response, productInfo) {
81
85
  }
82
86
 
83
87
  Wick.BasketPage.updateCart(...Array(2), true);
84
- toggleCharityElements();
85
88
  }
86
89
 
87
90
  export function changeCharityPrice() {
@@ -95,6 +98,7 @@ export function changeCharityPrice() {
95
98
 
96
99
  repaintCharityButton(this);
97
100
  $(charityEl.donationCartValue).text(charityValue);
101
+ showDonationCostBlock(context);
98
102
  charityActionForChangePrice(this);
99
103
  }
100
104
 
@@ -119,35 +123,46 @@ function repaintCharityButton(context) {
119
123
  $(context).removeClass(btnSecondary).addClass(btnSelected);
120
124
  }
121
125
 
122
- function resetCharityButton(context) {
123
- const donationButtons = $(context).find(charityEl.donationCartBtn);
124
- const btnSelected = 'btn-selected';
125
- const btnSecondary = 'btn-secondary';
126
- const defaultAmount = getDefaultCharityAmount();
127
-
128
- donationButtons.each((i, btn) => {
129
- $(btn).attr('data-value') === defaultAmount
130
- ? $(btn).removeClass(btnSecondary).addClass(btnSelected)
131
- : $(btn).removeClass(btnSelected).addClass(btnSecondary);
132
- })
133
- }
134
-
135
126
  function getDefaultCharityAmount() {
136
127
  const donationButtons = $(charityEl.charityItem).find(charityEl.donationCartBtn);
137
128
  return donationButtons.first().attr('data-value');
138
129
  }
139
130
 
131
+ export function setDefaultCharityValue() {
132
+ $(charityEl.donationCartBtnSelected).each(function() {
133
+ const $btn = $(this);
134
+ const $item = $btn.closest(charityEl.charityItem);
135
+ const value = $btn.data('value');
136
+
137
+ $item.find(charityEl.donationCartValue).text(value);
138
+ $item.find(charityEl.donationCartCostBlock)
139
+ .removeClass(charityEl.donationCartCostBlockHide);
140
+ });
141
+ }
142
+
143
+ function showDonationCostBlock($charity) {
144
+ $charity.find(charityEl.donationCartCostBlock)
145
+ .removeClass(charityEl.donationCartCostBlockHide);
146
+ }
147
+
140
148
  function resetCharityValue() {
141
149
  const defaultValue = getDefaultCharityAmount();
142
150
  $(charityEl.donationCartValue).text(defaultValue);
143
151
  }
144
152
 
145
- export function toggleMultipleCharityChoose(context) {
146
- context.find(charityEl.donationCart).toggleClass(charityEl.donationCartHide);
147
- resetCharityButton(context);
148
- resetCharityValue();
149
- }
150
-
151
- export function setDefaultCharityValue() {
152
- $(charityEl.charityItem).hasClass(charityEl.charityMultiple) && resetCharityValue();
153
+ export function initCharityInteractions() {
154
+ $(document).on('click', charityEl.donationCartRemove, function(e) {
155
+ e.preventDefault();
156
+
157
+ const $item = $(this).closest(charityEl.charityItem);
158
+ $item.removeClass(charityEl.charityAdded);
159
+ $item
160
+ .find(charityEl.donationCartCostBlock)
161
+ .addClass(charityEl.donationCartCostBlockHide);
162
+ $item
163
+ .find(charityEl.donationCartBtn)
164
+ .removeClass('btn-selected')
165
+ .addClass('btn-secondary');
166
+ resetCharityValue();
167
+ });
153
168
  }
@@ -0,0 +1,51 @@
1
+ var Wick = Wick || {};
2
+
3
+ Wick.ModalObserver = (function () {
4
+ const modal = $('.modal-scroll-observer');
5
+ modalContent = modal.find('.modal-content'),
6
+ modalBody = modal.find('.modal-body');
7
+
8
+ $(document).ready(function () {
9
+ if (!modal.length) {
10
+ return;
11
+ }
12
+
13
+ function updateScrollFades() {
14
+ const tolerance = 5;
15
+ const scrollTop = modalBody.scrollTop();
16
+ const scrollHeight = modalBody.prop('scrollHeight');
17
+ const visibleHeight = modalBody.outerHeight();
18
+
19
+ const isAtTop = scrollTop <= tolerance;
20
+ const isAtBottom = scrollTop + visibleHeight >= scrollHeight - tolerance;
21
+
22
+ let state;
23
+
24
+ if (isAtTop && isAtBottom) {
25
+ state = 'full';
26
+ } else if (isAtTop) {
27
+ state = 'top';
28
+ } else if (isAtBottom) {
29
+ state = 'bottom';
30
+ } else {
31
+ state = 'middle';
32
+ }
33
+
34
+ modalContent.attr('data-scroll-state', state);
35
+ }
36
+
37
+ modalBody.on('scroll', updateScrollFades);
38
+
39
+ modal.on('shown.bs.modal', function() {
40
+ updateScrollFades();
41
+ });
42
+
43
+ $(window).on('resize', function() {
44
+ if (modal.is(':visible')) {
45
+ updateScrollFades();
46
+ }
47
+ });
48
+
49
+ });
50
+
51
+ })();
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "wickes-css2",
3
- "version": "2.98.0-develop.8",
3
+ "version": "2.98.0-develop.9",
4
4
  "description": "CSS and JS and page templates in use by Wickes",
5
5
  "main": "index.js",
6
6
  "scripts": {
@@ -0,0 +1,42 @@
1
+ <div class="form-row radio-group" data-row-required>
2
+ <label class="form-row__label form-row__label_required">
3
+ Select your business type
4
+ </label>
5
+
6
+ <div class="form-row">
7
+ <div class="form-row__field">
8
+ {{> radiobutton
9
+ id="businessTypeUnregistered"
10
+ name="businessType"
11
+ value="unregistered"
12
+ label="Unregistered Sole Trader / Business"}}
13
+ </div>
14
+ </div>
15
+ <div class="form-row">
16
+ <div class="form-row__field">
17
+ {{> radiobutton
18
+ id="businessTypeRegistered"
19
+ name="businessType"
20
+ value="registered"
21
+ labelClass="registered-label"
22
+ label="Registered Sole Trader / Business"
23
+ tooltip="A Registered Business is one that has undergone the official process of being recognised and registered with Companies House, establishing its legal identity and enabling it to operate within a specific jurisdiction, such as a limited company. A Registered Business will have been issued a Company Registration Number (CRN) from Companies House."}}
24
+ </div>
25
+ </div>
26
+ </div>
27
+ <div
28
+ id="unregistered-fields"
29
+ class="radio-expanded-content"
30
+ >
31
+ {{> form-row id="first-name" label="First name" required="true" row-mod="first-name"}}
32
+ {{> form-row id="last-name" label="Last name" required="true" row-mod="last-name"}}
33
+ {{> form-row id="business-name" label="Business name" required="true" row-mod="unregistered-business"}}
34
+ </div>
35
+
36
+ <div
37
+ id="registered-fields"
38
+ class="radio-expanded-content"
39
+ >
40
+ {{> form-row id="business-name-2" label="Business name" required="true" row-mod="registered-business"}}
41
+ {{> form-row id="company-reg-number" label="Company registration number" row-mod="reg-number"}}
42
+ </div>
@@ -3,9 +3,9 @@
3
3
  {{> form-row id="first-line-address" label="Type first line of the address" required="true"}}
4
4
  </div>
5
5
  <div>
6
- {{> form-row id="address-line-1" label="Address line 1" required="true"}}
6
+ {{> form-row id="address-line-1" label="Address line 1" required="true" info="Eg house number/name, street name"}}
7
7
  {{> form-row id="address-line-2" label="Address line 2"}}
8
- {{> form-row id="town-city" label="Town / City" required="true"}}
8
+ {{> form-row id="town-city" label="Town/City" required="true"}}
9
9
  {{> form-row id="postcode_additional" label="Postcode" required="true"}}
10
10
  </div>
11
11
  {{else}}
@@ -0,0 +1,40 @@
1
+ {{#if title}}
2
+ {{> checkout-section-title}}
3
+ {{/if}}
4
+ <div class="charity-new charity-donation-new">
5
+ {{#with checkoutOrder.charity}}
6
+
7
+ <div class="charity-donation-new__wrapper">
8
+ <div class="charity-donation-new__top">
9
+ <div class="charity-donation-new__header">
10
+ <div class="charity-donation-new__title">{{title}}</div>
11
+ <div class="charity-donation-new__right">
12
+ <img
13
+ class="charity-donation-new__image"
14
+ src="{{img}}"
15
+ alt="{{title}}"
16
+ title="{{title}}"
17
+ />
18
+ </div>
19
+ </div>
20
+
21
+ <div class="charity-donation-new__description">
22
+ {{descr}}
23
+ <span class="charity-donation-new__message">
24
+ {{message}}
25
+ <a
26
+ class="charity-donation-new__subtitle-link"
27
+ href="{{subLink}}"
28
+ >
29
+ click here</a>.
30
+ </span>
31
+ </div>
32
+ </div>
33
+
34
+ <div class="charity-donation-new__body">
35
+ {{> donation-cart-new}}
36
+ </div>
37
+ </div>
38
+
39
+ {{/with}}
40
+ </div>
@@ -0,0 +1,41 @@
1
+ {{#extend "modal" id="billieLearnMoreModal" classMod="billie-modal modal-scroll-observer" title="" showCloseBtn=true centered=true backdrop=true fullWidth=true}}
2
+ {{#content "header"}}
3
+ <img src="./img/billie-modal.svg" alt="billie header logo" class="modal-header-logo">
4
+ {{/content}}
5
+ {{#content "body"}}
6
+ <div class="billie-modal__content">
7
+ <h4 class="billie-modal__heading">Benefits for Tradespeople and Small Businesses</h4>
8
+ <ul class="billie-modal__list">
9
+ <li>Potential for a higher credit limit*</li>
10
+ <li>Increased flexibility thanks to extended payment terms</li>
11
+ <li>Settle outstanding payments via Bank Transfer</li>
12
+ <li>View all your Wickes / Billie Orders in one place with your Trade Pro Account, on the Order History page.</li>
13
+ </ul>
14
+
15
+ <h4 class="billie-modal__heading">Buy now, pay within 30 days</h4>
16
+ <ol class="billie-modal__list billie-modal__list--ordered">
17
+ <li>Add items to your basket and proceed to checkout</li>
18
+ <li>Select Billie as your payment method</li>
19
+ <li>Enter your Business details on the payments page and Billie portal where necessary</li>
20
+ <li>Billie review your submitted details in real-time and gives instant feedback if your order was successful</li>
21
+ <li>From the point of collection / delivery of goods you’ll have 30 days to pay</li>
22
+ <li>Billie will send you the invoice document via email and remind you when it is time to pay</li>
23
+ </ol>
24
+
25
+ <p class="billie-modal__disclaimer">
26
+ *Available credit limits can differ between customers and are dependent on results of a credit check
27
+ </p>
28
+
29
+ <a href="https://www.wickes.co.uk/payments" class="billie-modal__read-more">Read more</a> about Billie
30
+ </div>
31
+ {{/content}}
32
+
33
+ {{#content "footer"}}
34
+ <div class="modal-box__inner-row justify-content-center modal-box__footer-row">
35
+ <div class="modal-box__inner-columns">
36
+ <button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
37
+ </div>
38
+ </div>
39
+ {{/content}}
40
+
41
+ {{/extend}}
@@ -0,0 +1,14 @@
1
+ <div class="billie {{#if basketStyles}}billie-basket{{/if}}">
2
+ <span class="billie__logo">
3
+ <img class="billie__image" src="./img/billie-pdp.svg" alt="Billie">
4
+ </span>
5
+ <div class="billie__content">
6
+ <span class="billie__title">
7
+ Buy Now Pay Later for Trade.
8
+ <a href="#" class="billie__link" data-toggle="modal" data-target="#billieLearnMoreModal">Learn more</a>
9
+ </span>
10
+ <span class="billie__subtitle">
11
+ Interest free
12
+ </span>
13
+ </div>
14
+ </div>
@@ -1,18 +1,32 @@
1
1
  <div class="checkout-payment-details__row" {{attr}}>
2
2
  <div class="checkout-payment-details__descr{{descrModifier}}">
3
3
  <h3 class="checkout-payment-details__title">Billing address</h3>
4
+ {{#if billie-form}}
5
+ <div class="checkout-payment-details__populated-address">
6
+ <span>
7
+ <span class="checkout-payment-details__populated-text">Populated from your business address in your TradePro account.</span>
8
+ {{> info-icon title="If the pre-populated address is incorrect, please amend it before proceeding. To update it permanently, review and amend your Business Address in My TradePro (or Installer) Account > Address Book." data-placement="top" }}
9
+ </span>
10
+ </div>
11
+ {{/if}}
4
12
  <div class="warning-required">Required fields</div>
5
- <div class="form-row">
6
- <div class="form-row__field">
7
- {{> checkbox id="chb-payment-details-card" label="Use my delivery address" }}
13
+ {{#unless billie-form}}
14
+ <div class="form-row">
15
+ <div class="form-row__field">
16
+ {{> checkbox id="chb-payment-details-card" label="Use my delivery address"}}
17
+ </div>
8
18
  </div>
9
- </div>
19
+ {{/unless}}
10
20
  {{#unless edit-bill-mod}}
11
21
  {{> form-row id="card-name" label="Name on card" required="true"}}
12
22
  {{/unless}}
13
23
 
14
- {{> address-postcode-look-up}}
15
-
24
+ <div class="address-postcode">
25
+ {{> address-postcode-look-up}}
26
+ {{#if billie-form}}
27
+ {{> address-billie}}
28
+ {{/if}}
29
+ </div>
16
30
 
17
31
  {{#unless no-set-card}}
18
32
  <div class="form-row">