wickes-css2 2.94.0-develop.13 → 2.94.0-develop.15
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.
- package/Readme.md +2 -2
- package/build/css/main.css +1 -1
- package/build/css/pages/checkout-new.css +1 -1
- package/build/css/pages/checkout.css +1 -1
- package/build/css/pages/page_checkout_delivery-new.css +1 -1
- package/build/css/pages/page_shopping-cart-v2.css +1 -1
- package/build/css/pages/tradePro-signup.css +1 -1
- package/build/css/pdp-main-non-critical.css +1 -1
- package/build/js/basket.min.js +2 -2
- package/build/js/bundle.min.js +1 -1
- package/build/js/checkout.min.js +2 -2
- package/build/js/emulation.min.js +2 -2
- package/build/js/general.bundle.min.js +1 -1
- package/build/js/merged-checkout.min.js +2 -2
- package/build/js/page/basket/summary-mobile.js +22 -0
- package/build/js/page/basket-v2.js +13 -0
- package/build/js/page/components/order-summary.js +8 -1
- package/build/js/page/components/sticky-order-observer.js +49 -0
- package/build/js/page/components/voucher.js +1 -1
- package/build/js/pdp.bundle.min.js +1 -1
- package/build/js/plp.bundle.min.js +1 -1
- package/build/js/project-list.min.js +1 -1
- package/package.json +1 -1
- package/src/components/checkout-action.hbs +14 -11
- package/src/components/checkout-voucher-accordion.hbs +15 -0
- package/src/components/checkout_order-summary-new.hbs +5 -3
- package/src/components/checkout_voucher_large.hbs +20 -16
- package/src/components/date-selection.hbs +1 -1
- package/src/components/order-item.hbs +3 -3
- package/src/components/order-summary.hbs +91 -56
- package/src/components/partner-signup-form.hbs +4 -0
- package/src/components/summary-mobile-bar.hbs +17 -0
- package/src/data/data_delivery-address-v2.json +1 -1
- package/src/data/data_shopping-cart-v2.json +24 -0
- package/src/js/components/general/is-trade-pro.js +15 -1
- package/src/js/emulation/basket-data.js +2 -2
- package/src/js/page/basket/summary-mobile.js +22 -0
- package/src/js/page/basket-v2.js +13 -0
- package/src/js/page/components/order-summary.js +8 -1
- package/src/js/page/components/sticky-order-observer.js +49 -0
- package/src/js/page/components/voucher.js +1 -1
- package/src/layouts/basket-new.hbs +1 -1
- package/src/layouts/checkout-new.hbs +1 -0
- package/src/page_checkout_confirmation-new-marketing-consent-error.html +0 -2
- package/src/page_checkout_delivery-address-customer-journey.html +0 -5
- package/src/page_checkout_delivery-address-v2.html +0 -4
- package/src/page_checkout_delivery-details-v2-asm.html +1 -5
- package/src/page_checkout_delivery-details-v2-calendar-message.html +0 -3
- package/src/page_checkout_delivery-details-v2-oos.html +0 -3
- package/src/page_checkout_delivery-details-v2-wisdom-not-available.html +0 -5
- package/src/page_checkout_delivery-details-v2-wisdom.html +0 -5
- package/src/page_checkout_delivery-details-with-loader-v2.html +0 -3
- package/src/page_checkout_delivery-details_guest-new.html +0 -5
- package/src/page_checkout_delivery_address-asm-new.html +0 -4
- package/src/page_checkout_next-day-delivery-details.html +0 -6
- package/src/page_checkout_payment-details-v2.html +1 -1
- package/src/page_checkout_payment-details_guest-with-checkout-journey.html +0 -2
- package/src/page_checkout_payment-details_login-with-checkout-journey.html +0 -2
- package/src/page_checkout_rapid-delivery-details.html +0 -6
- package/src/page_klarna_payment-details_with-klarna.html +3 -6
- package/src/page_payment-details-with-clearpay.html +1 -1
- package/src/page_payment-details_with_apple-pay.html +1 -1
- package/src/page_payment-details_with_google-pay.html +1 -1
- package/src/page_shopping-cart-v2.html +6 -16
- package/src/page_tradePro-signup.html +1 -1
- package/src/scss/components/_checkout-action.scss +132 -6
- package/src/scss/components/_marketing-preferences.scss +1 -1
- package/src/scss/components/_order-summary.scss +329 -178
- package/src/scss/components/_sticky-element-appearance.scss +25 -0
- package/src/scss/helpers/_variables.scss +2 -0
- package/src/scss/main.scss +1 -0
- package/src/scss/pages/_checkout-widget.scss +137 -28
- package/src/scss/pages/page_checkout_delivery-new.scss +119 -10
- package/src/scss/pages/page_shopping-cart-v2.scss +137 -34
- package/src/scss/pages/tradePro-signup.scss +27 -0
|
@@ -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: '
|
|
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',
|