wickes-css2 2.109.0-develop.2 → 2.109.0-gift-cards.1

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 (44) hide show
  1. package/Readme.md +1 -2
  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/homepage-main.css +1 -1
  5. package/build/css/kitchen-plp-main.css +1 -1
  6. package/build/css/main.css +1 -1
  7. package/build/css/my-account-main-v2.css +1 -1
  8. package/build/css/my-account-main.css +1 -1
  9. package/build/css/pages/checkout-new.css +1 -1
  10. package/build/css/pages/checkout.css +1 -1
  11. package/build/css/pdp-main-before-combine.css +1 -1
  12. package/build/css/pdp-main-non-critical.css +1 -1
  13. package/build/css/pdp-main.css +1 -1
  14. package/build/css/plp-main.css +1 -1
  15. package/build/css/store-locator-main.css +1 -1
  16. package/build/img/payment/checkout/giftcard.svg +28 -0
  17. package/build/img/payment/footer/giftcard.svg +28 -0
  18. package/build/js/gift-cards.min.js +1 -1
  19. package/build/js/page/checkout-payment-details.js +176 -79
  20. package/build/js/page/components/gift-cards.js +701 -357
  21. package/build/js/toggle-password-visibility.min.js +1 -0
  22. package/package.json +1 -1
  23. package/src/components/checkout_order-summary-new.hbs +6 -0
  24. package/src/components/checkout_payment-new.hbs +31 -8
  25. package/src/components/gift-cards.hbs +8 -15
  26. package/src/components/payments.hbs +6 -5
  27. package/src/data/data_checkout-giftcards.json +7 -0
  28. package/src/data/data_delivery-address-v2.json +4 -0
  29. package/src/data/data_payments-checkout.json +4 -0
  30. package/src/data/footer_menu.json +4 -0
  31. package/src/img/payment/checkout/giftcard.svg +28 -0
  32. package/src/img/payment/footer/giftcard.svg +28 -0
  33. package/src/js/page/checkout-payment-details.js +176 -79
  34. package/src/js/page/components/gift-cards.js +701 -357
  35. package/src/page_checkout_confirmation-gift-card.html +339 -0
  36. package/src/page_payment-details-with-gift-card.html +1 -1
  37. package/src/page_product-details-billie.html +2 -0
  38. package/src/page_product-details-clearpay.html +1 -0
  39. package/src/scss/components/_gift-cards.scss +32 -3
  40. package/src/scss/components/_payments-checkout.scss +2 -2
  41. package/src/scss/components/_payments-v2.scss +1 -1
  42. package/src/scss/helpers/_variables.scss +2 -0
  43. package/src/scss/pages/_checkout-confirmation-new.scss +86 -2
  44. package/src/sitemap.html +6 -0
@@ -10,22 +10,110 @@ Wick.CheckoutPaymentDetails = (function () {
10
10
  buttonName: 'btn-enter-details',
11
11
  };
12
12
 
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
- };
13
+ const elements = {
14
+ $billieRepaymentTerms: $('.js-billie-repayment-terms'),
15
+ $billieWidget: $('.checkout-payment-details__billie[data-billie]'),
16
+ $wrapperPaymentInput: $('.checkout-payment-details__row'),
17
+ paymentInputName: '[name=payment-method]',
18
+ $cardDetails: $('.checkout-payment-details__card-details'),
19
+ $placeOrder: $('.checkout-payment-details__place-order'),
20
+ $billingAddress: $('.billing-address'),
21
+ hiddenCardDetailsClass: 'checkout-payment-details__card-details_hidden',
22
+ $billieBusiness: $('[data-billie-business]'),
23
+ businessTypeName: '[name="businessType"]',
24
+ $unregisteredFields: $('#unregistered-fields'),
25
+ $registeredFields: $('#registered-fields'),
26
+ hiddenClass: 'd-none',
27
+ $giftcardToggle: $('#giftcard-toggle'),
28
+ $giftcardPanel: $('#giftcard-inline'),
29
+ giftcardDisabledClass: 'giftcard-toggle--disabled',
30
+ giftcardRoot: '.giftcard',
31
+ giftcardHint: '.giftcard-hint',
32
+ giftcardNumber: 'input[name="giftcard-number"]',
33
+ giftcardPin: 'input[name="giftcard-pin"]',
34
+ }
35
+
36
+ function setGiftcardToggleEnabled(isEnabled) {
37
+ const $toggle = elements.$giftcardToggle;
38
+ const $panel = elements.$giftcardPanel;
39
+ const $giftcard = $toggle.closest('.giftcard');
40
+
41
+ if (!$toggle.length) {
42
+ return;
43
+ }
44
+
45
+ $giftcard.toggleClass('giftcard--disabled', !isEnabled);
46
+
47
+ if (isEnabled) {
48
+ $toggle
49
+ .attr('aria-disabled', 'false')
50
+ .attr('tabindex', '0')
51
+ .css('pointer-events', '');
52
+ } else {
53
+ if ($panel && $panel.length) $panel.prop('hidden', true);
54
+
55
+ $toggle
56
+ .attr('aria-disabled', 'true')
57
+ .attr('tabindex', '-1')
58
+ .css('pointer-events', 'none')
59
+ .attr('aria-expanded', 'false')
60
+ .show();
61
+
62
+ $giftcard.find('.giftcard-hint').show();
63
+ }
64
+ }
65
+
66
+
67
+ function resetGiftcardToDefault() {
68
+ const {
69
+ $giftcardToggle: $toggle,
70
+ $giftcardPanel: $panel,
71
+ giftcardRoot,
72
+ giftcardHint,
73
+ giftcardNumber,
74
+ giftcardPin,
75
+ } = elements;
76
+
77
+ if (!$toggle.length) {
78
+ return;
79
+ }
80
+
81
+ const $giftcard = $toggle.closest(giftcardRoot);
82
+
83
+ const $hint = $giftcard.find(giftcardHint);
84
+ const $number = $giftcard.find(giftcardNumber);
85
+ const $pin = $giftcard.find(giftcardPin);
86
+
87
+ if ($panel.length) $panel.prop('hidden', true);
88
+
89
+ $toggle.attr('aria-expanded', 'false').show();
90
+ $hint.show();
91
+
92
+ if (window.Wick?.GiftCard?.resetForm) {
93
+ Wick.GiftCard.resetForm($giftcard);
94
+ return;
95
+ }
96
+
97
+ $number.val('');
98
+ $pin.val('');
99
+ }
100
+
101
+ function syncGiftcardAvailability(checkedMethod) {
102
+ const enable = checkedMethod === 'card';
103
+
104
+ if (!enable) {
105
+ const $giftcard = elements.$giftcardToggle.closest(elements.giftcardRoot);
106
+ if (window.Wick?.GiftCard?.collapsePreserveState) {
107
+ Wick.GiftCard.collapsePreserveState($giftcard);
108
+ } else {
109
+ if (elements.$giftcardPanel.length) elements.$giftcardPanel.prop('hidden', true);
110
+ elements.$giftcardToggle.attr('aria-expanded', 'false').show();
111
+ $giftcard.find(elements.giftcardHint).show();
112
+ }
113
+ }
114
+
115
+ setGiftcardToggleEnabled(enable);
116
+ }
29
117
 
30
118
  function preparePage() {
31
119
  var modalOpened = $('.modal.show').length;
@@ -57,29 +145,36 @@ Wick.CheckoutPaymentDetails = (function () {
57
145
  paymentMethods.forEach((method) => {
58
146
  $(`[data-${method}]`).toggle(checkedMethod === method);
59
147
  });
148
+ const $selected = $(`[data-${checkedMethod}]`);
149
+ if ($selected.length) {
150
+ $selected.show();
151
+ }
60
152
  }
61
153
 
62
- function resetAllCheckoutForms(keepPaymentMethod) {
63
- const $container = elements.$wrapperPaymentInput.closest('.checkout-payment-details');
64
- if (!$container.length) return;
154
+ function resetAllCheckoutForms(keepPaymentMethod) {
155
+ const $container = elements.$wrapperPaymentInput.closest('.checkout-payment-details');
156
+ if (!$container.length) return;
157
+ const $giftcardScope = $container.find(elements.giftcardRoot);
158
+ const $exclude = $giftcardScope.find(':input');
65
159
 
66
- $container.find('form').each(function () {
67
- if (Wick.Forms && typeof Wick.Forms.clearValidationErrors === 'function') {
68
- Wick.Forms.clearValidationErrors(this);
69
- }
70
- });
160
+ $container.find('form').each(function() {
161
+ if ($(this).closest(elements.giftcardRoot).length) return;
71
162
 
72
- $container
73
- .find(
74
- 'input[type="text"], input[type="email"], input[type="tel"], input[type="number"], input[type="password"], textarea'
75
- )
76
- .val('');
163
+ if (Wick.Forms && typeof Wick.Forms.clearValidationErrors === 'function') {
164
+ Wick.Forms.clearValidationErrors(this);
165
+ }
166
+ });
77
167
 
78
- $container.find('select').each(function () {
79
- this.selectedIndex = 0;
80
- });
168
+ $container
169
+ .find('input[type="text"], input[type="email"], input[type="tel"], input[type="number"], input[type="password"], textarea')
170
+ .not($exclude)
171
+ .val('');
81
172
 
82
- $container.find('input[type="checkbox"]').prop('checked', false);
173
+ $container.find('select').not($exclude).each(function() {
174
+ this.selectedIndex = 0;
175
+ });
176
+
177
+ $container.find('input[type="checkbox"]').not($exclude).prop('checked', false);
83
178
 
84
179
  $container.find('input[type="radio"]').each(function () {
85
180
  const $radio = $(this);
@@ -222,34 +317,36 @@ Wick.CheckoutPaymentDetails = (function () {
222
317
  buttonElement && buttonElement.text(buttonText);
223
318
  }
224
319
 
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();
320
+ function clearInputFields() {
321
+ elements.$billingAddress.find('input.tbx').val('');
322
+ }
323
+
324
+ function showPlaceOrder() {
325
+ elements.$placeOrder.removeClass(elements.hiddenClass);
326
+ }
327
+
328
+ function hidePlaceOrder() {
329
+ elements.$placeOrder.addClass(elements.hiddenClass);
330
+ }
331
+
332
+ function initBillieBusinessTypeToggle() {
333
+ $(document).on('change', elements.businessTypeName, function () {
334
+ toggleBusinessTypeFields($(this).val());
335
+ });
336
+ }
337
+
338
+ function forceReflow($element) {
339
+ if (!$element.length) return;
340
+ void $element[0].offsetHeight;
341
+ $(window).trigger('resize');
342
+ }
343
+
344
+ function init() {
345
+ const paymentMethods = getPaymentMethods();
346
+ const initialMethod = $(elements.paymentInputName + ':checked').val() || 'card';
347
+ syncGiftcardAvailability(initialMethod);
348
+ initBillieBusinessTypeToggle();
349
+ hideBillieBusiness();
253
350
 
254
351
  $(document).on('change', 'input[name="repaymentTerms"]', function () {
255
352
  const currentMethod = $(elements.paymentInputName + ':checked').val();
@@ -269,27 +366,27 @@ Wick.CheckoutPaymentDetails = (function () {
269
366
  elements.$wrapperPaymentInput.on('change', elements.paymentInputName, function () {
270
367
  const checkedMethod = $(this).val();
271
368
 
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
- }
369
+ togglePaymentBlocks(paymentMethods, checkedMethod)
370
+ changeDetailsBlock(checkedMethod)
371
+ syncGiftcardAvailability(checkedMethod);
281
372
 
282
- togglePaymentBlocks(paymentMethods, checkedMethod);
283
- changeDetailsBlock(checkedMethod);
373
+ if (prevPaymentMethod && prevPaymentMethod !== checkedMethod) {
374
+ resetAllCheckoutForms(checkedMethod);
375
+ } else {
376
+ const form = $(this).closest('form')[0];
377
+ form && Wick.Forms && Wick.Forms.clearValidationErrors && Wick.Forms.clearValidationErrors(form);
378
+ }
284
379
 
285
- prevPaymentMethod = checkedMethod;
286
- });
380
+ prevPaymentMethod = checkedMethod;
381
+ });
287
382
 
288
- $('.btn-new-card').on('click', function () {
289
- $('[data-new-card]').show();
290
- $('[data-existing-card]').hide();
291
- return false;
292
- });
383
+ $('.btn-new-card').on('click', function() {
384
+ elements.$cardDetails.removeClass(elements.hiddenCardDetailsClass);
385
+
386
+ $('[data-new-card]').show();
387
+ $('[data-existing-card]').hide();
388
+ return false;
389
+ });
293
390
 
294
391
  $('.btn-back-to-existing-card').on('click', function () {
295
392
  $('[data-new-card]').hide();