wickes-css2 2.107.0-test.1 → 2.108.0

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 (79) 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-chip.css +1 -1
  5. package/build/css/components/checkout-payment-details-v2.css +1 -1
  6. package/build/css/homepage-main.css +1 -1
  7. package/build/css/kitchen-plp-main.css +1 -1
  8. package/build/css/main.css +1 -1
  9. package/build/css/my-account-main-v2.css +1 -1
  10. package/build/css/my-account-main.css +1 -1
  11. package/build/css/pages/checkout-new.css +1 -1
  12. package/build/css/pages/checkout.css +1 -1
  13. package/build/css/pages/my-account-v2.css +1 -1
  14. package/build/css/pages/page_product_search.css +1 -1
  15. package/build/css/pages/page_products-list-combined.css +1 -1
  16. package/build/css/pages/page_products-list_v2.css +1 -1
  17. package/build/css/pdp-main-before-combine.css +1 -1
  18. package/build/css/pdp-main-critical.css +1 -1
  19. package/build/css/pdp-main-non-critical.css +1 -1
  20. package/build/css/pdp-main.css +1 -1
  21. package/build/css/plp-main.css +1 -1
  22. package/build/css/store-locator-main.css +1 -1
  23. package/build/js/emulation.min.js +1 -27
  24. package/build/js/gift-cards.min.js +1 -1
  25. package/build/js/page/checkout-payment-details.js +87 -245
  26. package/build/js/page/checkout.js +1 -1
  27. package/build/js/page/components/gift-cards.js +357 -701
  28. package/build/js/page/kitchen/card-carousel.js +22 -22
  29. package/package.json +1 -2
  30. package/src/components/cart-voucher.hbs +10 -1
  31. package/src/components/checkout-payment-details-v2.hbs +4 -4
  32. package/src/components/checkout-payment-info-block.hbs +1 -1
  33. package/src/components/checkout_order-summary-new.hbs +1 -7
  34. package/src/components/checkout_payment-new.hbs +8 -31
  35. package/src/components/gift-cards.hbs +15 -8
  36. package/src/components/order-item.hbs +18 -5
  37. package/src/components/order-summary.hbs +1 -1
  38. package/src/components/payments.hbs +5 -6
  39. package/src/components/potential-promotion.hbs +12 -3
  40. package/src/components/price-block-v2.hbs +1 -0
  41. package/src/data/data_delivery-address-v2.json +0 -4
  42. package/src/data/data_payments-checkout.json +0 -4
  43. package/src/data/data_quick-filter.json +3 -3
  44. package/src/data/data_shopping-cart-v2.json +23 -5
  45. package/src/data/footer_menu.json +0 -4
  46. package/src/js/emulation/checkout-payment-details.js +1 -34
  47. package/src/js/page/checkout-payment-details.js +87 -245
  48. package/src/js/page/checkout.js +1 -1
  49. package/src/js/page/components/gift-cards.js +357 -701
  50. package/src/js/page/kitchen/card-carousel.js +22 -22
  51. package/src/page_my-account-installer-carousel.html +131 -0
  52. package/src/page_payment-details-with-gift-card.html +1 -1
  53. package/src/page_product-details-billie.html +0 -2
  54. package/src/page_product-details-clearpay.html +0 -1
  55. package/src/page_shopping-cart-v2-vat.html +2 -1
  56. package/src/scss/components/_gift-cards.scss +3 -32
  57. package/src/scss/components/_payments-checkout.scss +2 -2
  58. package/src/scss/components/_payments-v2.scss +1 -1
  59. package/src/scss/components/_plp-filters.scss +9 -0
  60. package/src/scss/components/_price-block-critical.scss +8 -1
  61. package/src/scss/components/_quick-filter.scss +43 -11
  62. package/src/scss/components/_search-filter.scss +6 -0
  63. package/src/scss/components/card-product-banner.scss +1 -10
  64. package/src/scss/components/checkout-chip.scss +1 -0
  65. package/src/scss/components/checkout-payment-details-v2.scss +12 -0
  66. package/src/scss/components/my-account/_clipboard-code.scss +4 -0
  67. package/src/scss/helpers/_variables.scss +0 -2
  68. package/src/scss/pages/_checkout-confirmation-new.scss +2 -86
  69. package/src/scss/pages/page_product_search.scss +3 -13
  70. package/src/scss/pages/page_products-list-combined.scss +1 -28
  71. package/src/scss/pages/page_products-list_v2.scss +2 -19
  72. package/src/sitemap.html +1 -6
  73. package/build/img/payment/checkout/giftcard.svg +0 -28
  74. package/build/img/payment/footer/giftcard.svg +0 -28
  75. package/build/js/toggle-password-visibility.min.js +0 -1
  76. package/src/data/data_checkout-giftcards.json +0 -7
  77. package/src/img/payment/checkout/giftcard.svg +0 -28
  78. package/src/img/payment/footer/giftcard.svg +0 -28
  79. package/src/page_checkout_confirmation-gift-card.html +0 -339
@@ -1,6 +1,4 @@
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';
4
2
  Wick.CheckoutPaymentDetails = (function () {
5
3
  const $modal = $('#modal-terms-and-conditions');
6
4
 
@@ -12,156 +10,22 @@ Wick.CheckoutPaymentDetails = (function () {
12
10
  buttonName: 'btn-enter-details',
13
11
  };
14
12
 
15
- const elements = {
16
- $billieRepaymentTerms: $('.js-billie-repayment-terms'),
17
- $billieWidget: $('.checkout-payment-details__billie[data-billie]'),
18
- $wrapperPaymentInput: $('.checkout-payment-details__row'),
19
- paymentInputName: '[name=payment-method]',
20
- $cardDetails: $('.checkout-payment-details__card-details'),
21
- $placeOrder: $('.checkout-payment-details__place-order'),
22
- $billingAddress: $('.billing-address'),
23
- hiddenCardDetailsClass: 'checkout-payment-details__card-details_hidden',
24
- $billieBusiness: $('[data-billie-business]'),
25
- businessTypeName: '[name="businessType"]',
26
- $unregisteredFields: $('#unregistered-fields'),
27
- $registeredFields: $('#registered-fields'),
28
- hiddenClass: 'd-none',
29
- $giftcardToggle: $('#giftcard-toggle'),
30
- $giftcardPanel: $('#giftcard-inline'),
31
- giftcardDisabledClass: 'giftcard-toggle--disabled',
32
- giftcardRoot: '.giftcard',
33
- giftcardHint: '.giftcard-hint',
34
- giftcardNumber: 'input[name="giftcard-number"]',
35
- giftcardPin: 'input[name="giftcard-pin"]',
36
- }
37
-
38
- function setGiftcardToggleEnabled(isEnabled) {
39
- const $toggle = elements.$giftcardToggle;
40
- const $panel = elements.$giftcardPanel;
41
- const $giftcard = $toggle.closest('.giftcard');
42
-
43
- if (!$toggle.length) {
44
- return;
45
- }
46
-
47
- $giftcard.toggleClass('giftcard--disabled', !isEnabled);
48
-
49
- if (isEnabled) {
50
- $toggle
51
- .attr('aria-disabled', 'false')
52
- .attr('tabindex', '0')
53
- .css('pointer-events', '');
54
- } else {
55
- if ($panel && $panel.length) $panel.prop('hidden', true);
56
-
57
- $toggle
58
- .attr('aria-disabled', 'true')
59
- .attr('tabindex', '-1')
60
- .css('pointer-events', 'none')
61
- .attr('aria-expanded', 'false')
62
- .show();
63
-
64
- $giftcard.find('.giftcard-hint').show();
65
- }
66
- }
67
-
68
-
69
- function resetGiftcardToDefault() {
70
- const {
71
- $giftcardToggle: $toggle,
72
- $giftcardPanel: $panel,
73
- giftcardRoot,
74
- giftcardHint,
75
- giftcardNumber,
76
- giftcardPin,
77
- } = elements;
78
-
79
- if (!$toggle.length) {
80
- return;
81
- }
82
-
83
- const $giftcard = $toggle.closest(giftcardRoot);
84
-
85
- const $hint = $giftcard.find(giftcardHint);
86
- const $number = $giftcard.find(giftcardNumber);
87
- const $pin = $giftcard.find(giftcardPin);
88
-
89
- if ($panel.length) $panel.prop('hidden', true);
90
-
91
- $toggle.attr('aria-expanded', 'false').show();
92
- $hint.show();
93
-
94
- if (window.Wick?.GiftCard?.resetForm) {
95
- Wick.GiftCard.resetForm($giftcard);
96
- return;
97
- }
98
-
99
- $number.val('');
100
- $pin.val('');
101
- }
102
-
103
- function syncGiftcardAvailability(checkedMethod) {
104
- const enable = checkedMethod === 'card';
105
-
106
- if (!enable) {
107
- const $giftcard = elements.$giftcardToggle.closest(elements.giftcardRoot);
108
- if (window.Wick?.GiftCard?.collapsePreserveState) {
109
- Wick.GiftCard.collapsePreserveState($giftcard);
110
- } else {
111
- if (elements.$giftcardPanel.length) elements.$giftcardPanel.prop('hidden', true);
112
- elements.$giftcardToggle.attr('aria-expanded', 'false').show();
113
- $giftcard.find(elements.giftcardHint).show();
114
- }
115
- }
116
-
117
- setGiftcardToggleEnabled(enable);
118
- }
119
-
120
- let klarnaInited = false;
121
- let billieInited = false;
122
-
123
- function initKlarnaPayment() {
124
- if (klarnaInited) return Promise.resolve({ ok: true, cached: true });
125
-
126
- return new Promise((resolve, reject) => {
127
- const payload = {};
128
- const detail = {
129
- resolve: (data) => {
130
- klarnaInited = true;
131
- resolve(data);
132
- },
133
- reject,
134
- };
135
-
136
- const evt = createEvent(window.INIT_KLARNA_PAYMENT, payload, detail);
137
- window.dispatchEvent(evt);
138
- });
139
- }
140
-
141
- function initBilliePayment() {
142
- if (billieInited) return Promise.resolve({ ok: true, cached: true });
143
-
144
- return new Promise((resolve, reject) => {
145
- const payload = {};
146
- const detail = {
147
- resolve: (data) => {
148
- billieInited = true;
149
- resolve(data);
150
- },
151
- reject,
152
- };
153
-
154
- const evt = createEvent(window.INIT_BILLIE_PAYMENT, payload, detail);
155
- window.dispatchEvent(evt);
156
- });
157
- }
158
-
159
- function getBillieRepaymentTermsLength() {
160
- const billieRepaymentTerms =
161
- (window.Wick && window.Wick?.BillieData?.billiePaymentTerms) || [];
162
-
163
- return Array.isArray(billieRepaymentTerms) ? billieRepaymentTerms.length : 0;
164
- }
13
+ const elements = {
14
+ $billieRepaymentTerms: $('.js-billie-repayment-terms'),
15
+ $billieInfoBlock: $('.checkout-payment-details__billie'),
16
+ $billieInfo: $('.checkout-payment-details__billie .billie-info'),
17
+ $wrapperPaymentInput: $('.checkout-payment-details__row'),
18
+ paymentInputName: '[name=payment-method]',
19
+ $cardDetails: $('.checkout-payment-details__card-details'),
20
+ $placeOrder: $('.checkout-payment-details__place-order'),
21
+ $billingAddress: $('.billing-address'),
22
+ hiddenCardDetailsClass: 'checkout-payment-details__card-details_hidden',
23
+ $billieBusiness: $('[data-billie-business]'),
24
+ businessTypeName: '[name="businessType"]',
25
+ $unregisteredFields: $('#unregistered-fields'),
26
+ $registeredFields: $('#registered-fields'),
27
+ hiddenClass: 'd-none',
28
+ };
165
29
 
166
30
  function preparePage() {
167
31
  var modalOpened = $('.modal.show').length;
@@ -191,38 +55,31 @@ Wick.CheckoutPaymentDetails = (function () {
191
55
 
192
56
  function togglePaymentBlocks(paymentMethods, checkedMethod) {
193
57
  paymentMethods.forEach((method) => {
194
- $(`[data-${method}]`).hide();
58
+ $(`[data-${method}]`).toggle(checkedMethod === method);
195
59
  });
196
- const $selected = $(`[data-${checkedMethod}]`);
197
- if ($selected.length) {
198
- $selected.show();
199
- }
200
60
  }
201
61
 
202
- function resetAllCheckoutForms(keepPaymentMethod) {
203
- const $container = elements.$wrapperPaymentInput.closest('.checkout-payment-details');
204
- if (!$container.length) return;
205
- const $giftcardScope = $container.find(elements.giftcardRoot);
206
- const $exclude = $giftcardScope.find(':input');
62
+ function resetAllCheckoutForms(keepPaymentMethod) {
63
+ const $container = elements.$wrapperPaymentInput.closest('.checkout-payment-details');
64
+ if (!$container.length) return;
207
65
 
208
- $container.find('form').each(function() {
209
- if ($(this).closest(elements.giftcardRoot).length) return;
210
-
211
- if (Wick.Forms && typeof Wick.Forms.clearValidationErrors === 'function') {
212
- Wick.Forms.clearValidationErrors(this);
213
- }
214
- });
66
+ $container.find('form').each(function () {
67
+ if (Wick.Forms && typeof Wick.Forms.clearValidationErrors === 'function') {
68
+ Wick.Forms.clearValidationErrors(this);
69
+ }
70
+ });
215
71
 
216
- $container
217
- .find('input[type="text"], input[type="email"], input[type="tel"], input[type="number"], input[type="password"], textarea')
218
- .not($exclude)
219
- .val('');
72
+ $container
73
+ .find(
74
+ 'input[type="text"], input[type="email"], input[type="tel"], input[type="number"], input[type="password"], textarea'
75
+ )
76
+ .val('');
220
77
 
221
- $container.find('select').not($exclude).each(function() {
222
- this.selectedIndex = 0;
223
- });
78
+ $container.find('select').each(function () {
79
+ this.selectedIndex = 0;
80
+ });
224
81
 
225
- $container.find('input[type="checkbox"]').not($exclude).prop('checked', false);
82
+ $container.find('input[type="checkbox"]').prop('checked', false);
226
83
 
227
84
  $container.find('input[type="radio"]').each(function () {
228
85
  const $radio = $(this);
@@ -247,7 +104,7 @@ Wick.CheckoutPaymentDetails = (function () {
247
104
 
248
105
  function setBillieStepVisibility(isReady) {
249
106
  setBillingDetailsRowVisibility(isReady);
250
- elements.$billieWidget.toggle(isReady);
107
+ elements.$billieInfo.toggleClass(elements.hiddenClass, !isReady);
251
108
  }
252
109
 
253
110
  function resetBillieRepaymentSelection() {
@@ -273,26 +130,13 @@ Wick.CheckoutPaymentDetails = (function () {
273
130
  const isUnregistered = type === 'unregistered';
274
131
  const isRegistered = type === 'registered';
275
132
 
276
- elements.$unregisteredFields
277
- .toggleClass(elements.hiddenClass, !isUnregistered)
278
- .removeAttr('style');
279
- elements.$registeredFields
280
- .toggleClass(elements.hiddenClass, !isRegistered)
281
- .removeAttr('style');
133
+ elements.$unregisteredFields.toggleClass(elements.hiddenClass, !isUnregistered);
134
+ elements.$registeredFields.toggleClass(elements.hiddenClass, !isRegistered);
282
135
  }
283
136
 
284
137
  function changeDetailsBlock(checkedMethod) {
285
138
  if (checkedMethod !== 'billie') {
286
139
  setBillingDetailsRowVisibility(true);
287
- hideBillieBusiness();
288
- }
289
-
290
- if (checkedMethod === 'klarna') {
291
- initKlarnaPayment().catch(() => {});
292
- }
293
-
294
- if (checkedMethod === 'billie' && getBillieRepaymentTermsLength() === 1) {
295
- initBilliePayment().catch(() => {});
296
140
  }
297
141
 
298
142
  switch (checkedMethod) {
@@ -314,7 +158,7 @@ Wick.CheckoutPaymentDetails = (function () {
314
158
  };
315
159
  changeLabelText(detailsLabel);
316
160
 
317
- setBillieStepVisibility(getBillieRepaymentTermsLength() === 1);
161
+ setBillieStepVisibility(false);
318
162
  resetBillieRepaymentSelection();
319
163
  showBillieBusiness();
320
164
  break;
@@ -330,13 +174,13 @@ Wick.CheckoutPaymentDetails = (function () {
330
174
  prevClearableMethod = checkedMethod;
331
175
  break;
332
176
 
333
- case 'apple-pay':
177
+ case 'apple':
334
178
  hideCardDetails();
335
179
  hidePlaceOrder();
336
180
  hideBillingAddres();
337
181
  break;
338
182
 
339
- case 'google-pay':
183
+ case 'google':
340
184
  hideCardDetails();
341
185
  hidePlaceOrder();
342
186
  hideBillingAddres();
@@ -378,43 +222,41 @@ Wick.CheckoutPaymentDetails = (function () {
378
222
  buttonElement && buttonElement.text(buttonText);
379
223
  }
380
224
 
381
- function clearInputFields() {
382
- elements.$billingAddress.find('input.tbx').val('');
383
- }
384
-
385
- function showPlaceOrder() {
386
- elements.$placeOrder.removeClass(elements.hiddenClass);
387
- }
388
-
389
- function hidePlaceOrder() {
390
- elements.$placeOrder.addClass(elements.hiddenClass);
391
- }
392
-
393
- function initBillieBusinessTypeToggle() {
394
- $(document).on('change', elements.businessTypeName, function () {
395
- toggleBusinessTypeFields($(this).val());
396
- });
397
- }
398
-
399
- function forceReflow($element) {
400
- if (!$element.length) return;
401
- void $element[0].offsetHeight;
402
- $(window).trigger('resize');
403
- }
404
-
405
- function init() {
406
- const paymentMethods = getPaymentMethods();
407
- const initialMethod = $(elements.paymentInputName + ':checked').val() || 'card';
408
- syncGiftcardAvailability(initialMethod);
409
- initBillieBusinessTypeToggle();
410
- hideBillieBusiness();
225
+ function clearInputFields() {
226
+ elements.$billingAddress.find('input.tbx').val('');
227
+ }
228
+
229
+ function showPlaceOrder() {
230
+ elements.$placeOrder.removeClass(elements.hiddenClass);
231
+ }
232
+
233
+ function hidePlaceOrder() {
234
+ elements.$placeOrder.addClass(elements.hiddenClass);
235
+ }
236
+
237
+ function initBillieBusinessTypeToggle() {
238
+ $(document).on('change', elements.businessTypeName, function () {
239
+ toggleBusinessTypeFields($(this).val());
240
+ });
241
+ }
242
+
243
+ function forceReflow($element) {
244
+ if (!$element.length) return;
245
+ void $element[0].offsetHeight;
246
+ $(window).trigger('resize');
247
+ }
248
+
249
+ function init() {
250
+ const paymentMethods = getPaymentMethods();
251
+ initBillieBusinessTypeToggle();
252
+ hideBillieBusiness();
411
253
 
412
254
  $(document).on('change', 'input[name="repaymentTerms"]', function () {
413
255
  const currentMethod = $(elements.paymentInputName + ':checked').val();
414
256
  if (currentMethod !== 'billie') return;
415
257
 
416
258
  requestAnimationFrame(() => {
417
- forceReflow(elements.$billieWidget);
259
+ forceReflow(elements.$billieInfoBlock);
418
260
  });
419
261
 
420
262
  const hasSelection = $('input[name="repaymentTerms"]:checked').length > 0;
@@ -427,27 +269,27 @@ Wick.CheckoutPaymentDetails = (function () {
427
269
  elements.$wrapperPaymentInput.on('change', elements.paymentInputName, function () {
428
270
  const checkedMethod = $(this).val();
429
271
 
430
- togglePaymentBlocks(paymentMethods, checkedMethod)
431
- changeDetailsBlock(checkedMethod)
432
- syncGiftcardAvailability(checkedMethod);
433
-
434
- if (prevPaymentMethod && prevPaymentMethod !== checkedMethod) {
435
- resetAllCheckoutForms(checkedMethod);
436
- } else {
437
- const form = $(this).closest('form')[0];
438
- form && Wick.Forms && Wick.Forms.clearValidationErrors && Wick.Forms.clearValidationErrors(form);
439
- }
272
+ if (prevPaymentMethod && prevPaymentMethod !== checkedMethod) {
273
+ resetAllCheckoutForms(checkedMethod);
274
+ } else {
275
+ const form = $(this).closest('form')[0];
276
+ form &&
277
+ Wick.Forms &&
278
+ Wick.Forms.clearValidationErrors &&
279
+ Wick.Forms.clearValidationErrors(form);
280
+ }
440
281
 
441
- prevPaymentMethod = checkedMethod;
442
- });
282
+ togglePaymentBlocks(paymentMethods, checkedMethod);
283
+ changeDetailsBlock(checkedMethod);
443
284
 
444
- $('.btn-new-card').on('click', function() {
445
- elements.$cardDetails.removeClass(elements.hiddenCardDetailsClass);
285
+ prevPaymentMethod = checkedMethod;
286
+ });
446
287
 
447
- $('[data-new-card]').show();
448
- $('[data-existing-card]').hide();
449
- return false;
450
- });
288
+ $('.btn-new-card').on('click', function () {
289
+ $('[data-new-card]').show();
290
+ $('[data-existing-card]').hide();
291
+ return false;
292
+ });
451
293
 
452
294
  $('.btn-back-to-existing-card').on('click', function () {
453
295
  $('[data-new-card]').hide();
@@ -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 = {