wickes-css2 2.107.0-develop.2 → 2.107.0-develop.4

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 (31) hide show
  1. package/build/css/components/checkout-chip.css +1 -1
  2. package/build/css/components/checkout-payment-details-v2.css +1 -1
  3. package/build/css/main.css +1 -1
  4. package/build/css/my-account-main-v2.css +1 -1
  5. package/build/css/pages/my-account-v2.css +1 -1
  6. package/build/js/emulation.min.js +27 -1
  7. package/build/js/gift-cards.min.js +1 -1
  8. package/build/js/page/checkout-payment-details.js +96 -9
  9. package/build/js/page/checkout.js +1 -1
  10. package/build/js/page/components/gift-cards.js +1 -1
  11. package/build/js/page/kitchen/card-carousel.js +22 -22
  12. package/package.json +1 -1
  13. package/src/components/cart-voucher.hbs +10 -1
  14. package/src/components/checkout-payment-details-v2.hbs +4 -4
  15. package/src/components/checkout-payment-info-block.hbs +1 -1
  16. package/src/components/checkout_order-summary-new.hbs +1 -1
  17. package/src/components/order-item.hbs +18 -5
  18. package/src/components/order-summary.hbs +1 -1
  19. package/src/components/potential-promotion.hbs +12 -3
  20. package/src/data/data_shopping-cart-v2.json +23 -5
  21. package/src/js/emulation/checkout-payment-details.js +34 -1
  22. package/src/js/page/checkout-payment-details.js +96 -9
  23. package/src/js/page/checkout.js +1 -1
  24. package/src/js/page/components/gift-cards.js +1 -1
  25. package/src/js/page/kitchen/card-carousel.js +22 -22
  26. package/src/page_my-account-installer-carousel.html +131 -0
  27. package/src/page_shopping-cart-v2-vat.html +2 -1
  28. package/src/scss/components/checkout-chip.scss +1 -0
  29. package/src/scss/components/checkout-payment-details-v2.scss +12 -0
  30. package/src/scss/components/my-account/_clipboard-code.scss +4 -0
  31. package/src/sitemap.html +1 -0
@@ -1,4 +1,6 @@
1
1
  var Wick = Wick || {};
2
+ window.INIT_KLARNA_PAYMENT = window.INIT_KLARNA_PAYMENT || 'INIT_KLARNA_PAYMENT';
3
+ window.INIT_BILLIE_PAYMENT = window.INIT_BILLIE_PAYMENT || 'INIT_BILLIE_PAYMENT';
2
4
  Wick.CheckoutPaymentDetails = (function () {
3
5
  const $modal = $('#modal-terms-and-conditions');
4
6
 
@@ -10,9 +12,11 @@ Wick.CheckoutPaymentDetails = (function () {
10
12
  buttonName: 'btn-enter-details',
11
13
  };
12
14
 
15
+ const toggleBillieRepaymentTermsClass = 'js-billie-repayment-terms--has-selection';
16
+
13
17
  const elements = {
14
18
  $billieRepaymentTerms: $('.js-billie-repayment-terms'),
15
- $billieInfoBlock: $('.checkout-payment-details__billie'),
19
+ $billieWidget: $('.checkout-payment-details__billie[data-billie]'),
16
20
  $wrapperPaymentInput: $('.checkout-payment-details__row'),
17
21
  paymentInputName: '[name=payment-method]',
18
22
  $cardDetails: $('.checkout-payment-details__card-details'),
@@ -26,6 +30,52 @@ Wick.CheckoutPaymentDetails = (function () {
26
30
  hiddenClass: 'd-none',
27
31
  };
28
32
 
33
+ let klarnaInited = false;
34
+ let billieInited = false;
35
+
36
+ function initKlarnaPayment() {
37
+ if (klarnaInited) return Promise.resolve({ ok: true, cached: true });
38
+
39
+ return new Promise((resolve, reject) => {
40
+ const payload = {};
41
+ const detail = {
42
+ resolve: (data) => {
43
+ klarnaInited = true;
44
+ resolve(data);
45
+ },
46
+ reject,
47
+ };
48
+
49
+ const evt = createEvent(window.INIT_KLARNA_PAYMENT, payload, detail);
50
+ window.dispatchEvent(evt);
51
+ });
52
+ }
53
+
54
+ function initBilliePayment() {
55
+ if (billieInited) return Promise.resolve({ ok: true, cached: true });
56
+
57
+ return new Promise((resolve, reject) => {
58
+ const payload = {};
59
+ const detail = {
60
+ resolve: (data) => {
61
+ billieInited = true;
62
+ resolve(data);
63
+ },
64
+ reject,
65
+ };
66
+
67
+ const evt = createEvent(window.INIT_BILLIE_PAYMENT, payload, detail);
68
+ window.dispatchEvent(evt);
69
+ });
70
+ }
71
+
72
+ function getBillieRepaymentTermsLength() {
73
+ const billieRepaymentTerms =
74
+ (window.Wick && window.Wick?.BillieData?.billiePaymentTerms) || [];
75
+
76
+ return Array.isArray(billieRepaymentTerms) ? billieRepaymentTerms.length : 0;
77
+ }
78
+
29
79
  function preparePage() {
30
80
  var modalOpened = $('.modal.show').length;
31
81
  if (!modalOpened) return;
@@ -54,10 +104,14 @@ Wick.CheckoutPaymentDetails = (function () {
54
104
 
55
105
  function togglePaymentBlocks(paymentMethods, checkedMethod) {
56
106
  paymentMethods.forEach((method) => {
57
- $(`[data-${method}]`).toggle(checkedMethod === method);
107
+ $(`[data-${method}]`).hide();
58
108
  });
59
- }
60
109
 
110
+ const $selected = $(`[data-${checkedMethod}]`);
111
+ if ($selected.length) {
112
+ $selected.show();
113
+ }
114
+ }
61
115
  function resetAllCheckoutForms(keepPaymentMethod) {
62
116
  const $container = elements.$wrapperPaymentInput.closest('.checkout-payment-details');
63
117
  if (!$container.length) return;
@@ -101,9 +155,18 @@ Wick.CheckoutPaymentDetails = (function () {
101
155
  $row.find(':input').prop('disabled', !isVisible);
102
156
  }
103
157
 
158
+ function _syncBillieUI(isReady) {
159
+ elements.$billieWidget.toggle(isReady);
160
+ elements.$billieRepaymentTerms.toggleClass(toggleBillieRepaymentTermsClass, isReady);
161
+ }
162
+
163
+ function resetBillieUi() {
164
+ _syncBillieUI(false);
165
+ }
166
+
104
167
  function setBillieStepVisibility(isReady) {
168
+ _syncBillieUI(isReady);
105
169
  setBillingDetailsRowVisibility(isReady);
106
- elements.$billieInfoBlock.toggle(isReady);
107
170
  }
108
171
 
109
172
  function resetBillieRepaymentSelection() {
@@ -129,13 +192,27 @@ Wick.CheckoutPaymentDetails = (function () {
129
192
  const isUnregistered = type === 'unregistered';
130
193
  const isRegistered = type === 'registered';
131
194
 
132
- elements.$unregisteredFields.toggleClass(elements.hiddenClass, !isUnregistered);
133
- elements.$registeredFields.toggleClass(elements.hiddenClass, !isRegistered);
195
+ elements.$unregisteredFields
196
+ .toggleClass(elements.hiddenClass, !isUnregistered)
197
+ .removeAttr('style');
198
+ elements.$registeredFields
199
+ .toggleClass(elements.hiddenClass, !isRegistered)
200
+ .removeAttr('style');
134
201
  }
135
202
 
136
203
  function changeDetailsBlock(checkedMethod) {
137
204
  if (checkedMethod !== 'billie') {
205
+ resetBillieUi();
138
206
  setBillingDetailsRowVisibility(true);
207
+ hideBillieBusiness();
208
+ }
209
+
210
+ if (checkedMethod === 'klarna') {
211
+ initKlarnaPayment().catch(() => {});
212
+ }
213
+
214
+ if (checkedMethod === 'billie' && getBillieRepaymentTermsLength() === 1) {
215
+ initBilliePayment().catch(() => {});
139
216
  }
140
217
 
141
218
  switch (checkedMethod) {
@@ -157,7 +234,7 @@ Wick.CheckoutPaymentDetails = (function () {
157
234
  };
158
235
  changeLabelText(detailsLabel);
159
236
 
160
- setBillieStepVisibility(false);
237
+ setBillieStepVisibility(getBillieRepaymentTermsLength() === 1);
161
238
  resetBillieRepaymentSelection();
162
239
  showBillieBusiness();
163
240
  break;
@@ -173,13 +250,13 @@ Wick.CheckoutPaymentDetails = (function () {
173
250
  prevClearableMethod = checkedMethod;
174
251
  break;
175
252
 
176
- case 'apple':
253
+ case 'apple-pay':
177
254
  hideCardDetails();
178
255
  hidePlaceOrder();
179
256
  hideBillingAddres();
180
257
  break;
181
258
 
182
- case 'google':
259
+ case 'google-pay':
183
260
  hideCardDetails();
184
261
  hidePlaceOrder();
185
262
  hideBillingAddres();
@@ -239,6 +316,12 @@ Wick.CheckoutPaymentDetails = (function () {
239
316
  });
240
317
  }
241
318
 
319
+ function forceReflow($element) {
320
+ if (!$element.length) return;
321
+ void $element[0].offsetHeight;
322
+ $(window).trigger('resize');
323
+ }
324
+
242
325
  function init() {
243
326
  const paymentMethods = getPaymentMethods();
244
327
  initBillieBusinessTypeToggle();
@@ -248,6 +331,10 @@ Wick.CheckoutPaymentDetails = (function () {
248
331
  const currentMethod = $(elements.paymentInputName + ':checked').val();
249
332
  if (currentMethod !== 'billie') return;
250
333
 
334
+ requestAnimationFrame(() => {
335
+ forceReflow(elements.$billieWidget);
336
+ });
337
+
251
338
  const hasSelection = $('input[name="repaymentTerms"]:checked').length > 0;
252
339
  setBillieStepVisibility(hasSelection);
253
340
 
@@ -1,4 +1,4 @@
1
- import {checkVoucherCode, voucherRemove} from './components/voucher';
1
+ import { checkVoucherCode, voucherRemove } from './components/voucher';
2
2
 
3
3
  var Wick = window.Wick || {};
4
4
  Wick.Checkout = {
@@ -111,7 +111,7 @@ Wick.GiftCard = {
111
111
  klarnaInfo: '.checkout-payment-details__klarna',
112
112
  billingAddress: '.billing-address',
113
113
  altPaymentRowsAttr:
114
- '[data-apple],[data-google],[data-paypal],[data-klarna],[data-billie],[data-clearpay],[data-existing-card]',
114
+ '[data-apple-pay],[data-google-pay],[data-paypal],[data-klarna],[data-billie],[data-clearpay],[data-existing-card]',
115
115
  hiddenCard: 'checkout-payment-details__card-details_hidden',
116
116
  cardDetails: '.checkout-payment-details__card-details',
117
117
  },
@@ -3,30 +3,30 @@ var Wick = Wick || {};
3
3
  Wick.PLPCardSwiper = {};
4
4
 
5
5
  $(document).ready(function () {
6
- const SELECTORS = {
7
- kitchenCard: '.kitchen-card',
8
- swiperContainer: '.swiper-container-main',
9
- nextButton: '.kitchen-card__next-btn',
10
- prevButton: '.kitchen-card__prev-btn',
11
- };
6
+ const SELECTORS = {
7
+ kitchenCard: '.kitchen-card',
8
+ swiperContainer: '.swiper-container-main',
9
+ nextButton: '.kitchen-card__next-btn',
10
+ prevButton: '.kitchen-card__prev-btn',
11
+ };
12
12
 
13
- $(SELECTORS.kitchenCard).each(function (index, container) {
14
- const $container = $(container);
15
- const id = $container.data('id');
13
+ $(SELECTORS.kitchenCard).each(function (index, container) {
14
+ const $container = $(container);
15
+ const id = $container.data('id');
16
16
 
17
- const sliderElement = $container.find(SELECTORS.swiperContainer)[0];
18
- const nextButtonElement = $container.find(SELECTORS.nextButton)[0];
19
- const prevButtonElement = $container.find(SELECTORS.prevButton)[0];
17
+ const sliderElement = $container.find(SELECTORS.swiperContainer)[0];
18
+ const nextButtonElement = $container.find(SELECTORS.nextButton)[0];
19
+ const prevButtonElement = $container.find(SELECTORS.prevButton)[0];
20
20
 
21
- const swiper = new Swiper(sliderElement, {
22
- speed: 400,
23
- navigation: {
24
- nextEl: nextButtonElement,
25
- prevEl: prevButtonElement,
26
- },
27
- simulateTouch: false,
28
- });
21
+ const swiper = new Swiper(sliderElement, {
22
+ speed: 400,
23
+ navigation: {
24
+ nextEl: nextButtonElement,
25
+ prevEl: prevButtonElement,
26
+ },
27
+ simulateTouch: false,
28
+ });
29
29
 
30
- Wick.PLPCardSwiper[id] = swiper;
31
- });
30
+ Wick.PLPCardSwiper[id] = swiper;
31
+ });
32
32
  });
@@ -0,0 +1,131 @@
1
+ {{#extend "my-account-v2"
2
+ customIconUserClass=header_menu.installer.[0].items.[0].icon
3
+ dataBreadcrumbs=my_account.installer.breadcrumbs
4
+ pageClass="page_my-account_new"
5
+ title="My Account Installer Carousel"
6
+ pageMyAcc=true
7
+ myAccV2=true
8
+ isLoggedIn=true
9
+ installer-nav=true
10
+ mainClass="my-account"
11
+ switch-vat=true
12
+ }}
13
+ {{#content "main"}}
14
+ <div class="container">
15
+ <div class="row">
16
+ <div class="col-12">
17
+ {{> my-account/mobile-nav my-account-menu-new
18
+ customIcon=true
19
+ menu=my_account.installer.menu
20
+ active-index=0
21
+ page-name=my_account.installer.menu.[0].title
22
+ }}
23
+ </div>
24
+ </div>
25
+ </div>
26
+ <div class="account-summary">
27
+ <div class="container">
28
+ <div class="row">
29
+ <div class="col-12">
30
+ <div class="account-summary__wrapper d-none d-sm-grid mb-3">
31
+ {{> my-account/greetings
32
+ name=my_account.user.name
33
+ subtitle=my_account.user.email
34
+ }}
35
+ </div>
36
+ {{#extend "my-account/cards-swap"}}
37
+ {{#content "card1"}}
38
+ <div class="account-summary__wrapper account-summary__wrapper--secondary">
39
+ {{> my-account/greetings
40
+ mod="d-sm-none"
41
+ secondary=true
42
+ name=my_account.user.name
43
+ subtitle=my_account.user.email
44
+ }}
45
+ {{> my-account/discount
46
+ secondary=true
47
+ discountText=my_account.installer.discountText
48
+ installer=true
49
+ title="In-store discount"
50
+ code=my_account.discount
51
+ customIcon=my_account.installer.icons.installer
52
+ }}
53
+ {{> my-account/clipboard-code-card
54
+ secondary=true
55
+ mod="trade-pro-id"
56
+ customIcon=my_account.installer.icons.installer
57
+ title="TradePro ID"
58
+ code=my_account.tradeProId
59
+ }}
60
+ {{> my-account/clipboard-code-card
61
+ secondary=true
62
+ mod="discount-code"
63
+ icon="fas fa-badge-percent"
64
+ title="Online discount code"
65
+ code=my_account.installer.discountCode
66
+ }}
67
+ </div>
68
+ {{/content}}
69
+ {{#content "card2"}}
70
+ <div class="account-summary__wrapper">
71
+ {{> my-account/greetings
72
+ mod="d-sm-none"
73
+ name=my_account.user.name
74
+ subtitle=my_account.user.email
75
+ }}
76
+ {{> my-account/discount
77
+ discountText=my_account.installer.discountText
78
+ installer=true
79
+ title="In-store discount"
80
+ code=my_account.discount
81
+ customIcon=my_account.installer.icons.installer
82
+ }}
83
+ {{> my-account/clipboard-code-card
84
+ mod="trade-pro-id"
85
+ customIcon=my_account.installer.icons.installer
86
+ title="TradePro ID"
87
+ code=my_account.tradeProId
88
+ }}
89
+ {{> my-account/clipboard-code-card
90
+ mod="discount-code"
91
+ icon="fas fa-badge-percent"
92
+ title="Online discount code"
93
+ code=my_account.installer.discountCode
94
+ }}
95
+ </div>
96
+ {{/content}}
97
+ {{/extend}}
98
+ {{> my-account/active-orders/list-orders
99
+ switch-vat=true
100
+ title=my_account.installer.activeOrders.sectionTitle
101
+ linkText='View all orders'
102
+ orders=my_account.installer.activeOrders.orderList
103
+ }}
104
+ </div>
105
+ </div>
106
+ </div>
107
+ </div>
108
+ <div class="container">
109
+ <div class="row">
110
+ <div class="col-12">
111
+ {{> my-account/menu-items
112
+ items=my_account.installer.menu
113
+ }}
114
+ </div>
115
+ </div>
116
+ </div>
117
+ <div class="account-actions">
118
+ <div class="container">
119
+ <div class="row">
120
+ <div class="col-12">
121
+ {{> my-account/user-account-actions mod="d-sm-none"}}
122
+ {{> my-account/contact-us contacts=my_account.contacts}}
123
+ </div>
124
+ </div>
125
+ </div>
126
+ </div>
127
+ {{/content}}
128
+ {{#content "foot" mode="append"}}
129
+ <script defer src="./js/my-account.min.js"></script>
130
+ {{/content}}
131
+ {{/extend}}
@@ -12,7 +12,7 @@
12
12
  </div>
13
13
  <div class="checkout-header__promo">
14
14
  {{#each shopping-cart-v2.potentialOrderPromotions}}
15
- {{> potential-promotion}}
15
+ {{> potential-promotion switch-vat=true}}
16
16
  {{/each}}
17
17
  </div>
18
18
  {{> checkout-header shopping-cart-v2.header}}
@@ -20,6 +20,7 @@
20
20
  {{#content "aside"}}
21
21
  {{> order-summary
22
22
  shopping-cart-v2.checkout
23
+ switch-vat=true
23
24
  id=1
24
25
  title="Order Summary"
25
26
  basket=true
@@ -40,6 +40,7 @@
40
40
  user-select: none;
41
41
  transition: border-color 0.2s;
42
42
  width: 78px;
43
+ margin-bottom: 0;
43
44
  }
44
45
 
45
46
  &__label-top {
@@ -405,6 +405,18 @@
405
405
  }
406
406
  }
407
407
  }
408
+
409
+ .js-billie-repayment-terms {
410
+ margin-bottom: 20px;
411
+
412
+ &--has-selection {
413
+ margin-bottom: 0;
414
+ }
415
+
416
+ .form-row__error {
417
+ margin-top: 16px;
418
+ }
419
+ }
408
420
  }
409
421
  }
410
422
 
@@ -81,5 +81,9 @@
81
81
  .icon {
82
82
  color: $gray;
83
83
  }
84
+
85
+ .custom-icon path {
86
+ fill: $gray;
87
+ }
84
88
  }
85
89
  }
package/src/sitemap.html CHANGED
@@ -527,6 +527,7 @@
527
527
  <li><h5 class="mb-0">Account Pages Redesign</h5></li>
528
528
  <li><span class="page-id">5.15</span><a href="page_my-account.html" target="_blank">My Account DIY</a></li>
529
529
  <li><a href="page_my-account-installer.html" target="_blank">My Account Installer</a></li>
530
+ <li><a href="page_my-account-installer-carousel.html" target="_blank">My Account Installer Carousel</a></li>
530
531
  <li><a href="page_my-account-trade-pro.html" target="_blank">My Account TradePro</a></li>
531
532
  <li><a href="page_my-account-trade-pro-carousel.html" target="_blank">My Account TradePro Carousel</a></li>
532
533
  <li><a href="page_my-account-trade-pro-carousel-double.html" target="_blank">My Account TradePro Carousel Double</a></li>