wickes-css2 2.106.0-develop.7 → 2.106.0-develop.8

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 (69) hide show
  1. package/Readme.md +1 -1
  2. package/build/css/components/checkout-payment-details-v2.css +1 -1
  3. package/build/css/pages/page_checkout_delivery-new.css +1 -1
  4. package/build/img/billie-pay-later.svg +13 -0
  5. package/build/img/giftcard.svg +28 -0
  6. package/build/js/account-members.min.js +1 -1
  7. package/build/js/add-project-list-id.min.js +1 -1
  8. package/build/js/address-book.min.js +1 -1
  9. package/build/js/basket.min.js +2 -2
  10. package/build/js/bundle.min.js +1 -1
  11. package/build/js/change-password.min.js +1 -1
  12. package/build/js/checkout.min.js +2 -2
  13. package/build/js/emulation.min.js +2110 -1841
  14. package/build/js/general.bundle.min.js +1 -1
  15. package/build/js/gift-cards.min.js +1 -0
  16. package/build/js/merged-checkout.min.js +2 -2
  17. package/build/js/mini-basket-slider.min.js +1 -1
  18. package/build/js/page/basket/basket-update-cart-action.js +4 -1
  19. package/build/js/page/basket/klarna.js +13 -3
  20. package/build/js/page/basket-v2.js +6 -2
  21. package/build/js/page/components/gift-cards.js +915 -0
  22. package/build/js/page/components/order-summary.js +42 -25
  23. package/build/js/page/components/toggle-password-visibility.js +22 -0
  24. package/build/js/page/components/voucher.js +52 -47
  25. package/build/js/page/utils/gift-cards-utils.js +188 -0
  26. package/build/js/page/utils/input-handling.js +92 -0
  27. package/build/js/page/utils/show-hide-input.js +28 -0
  28. package/build/js/page/utils/validation.js +46 -1
  29. package/build/js/pdp.bundle.min.js +1 -1
  30. package/build/js/personal-details.min.js +1 -1
  31. package/build/js/plp.bundle.min.js +1 -1
  32. package/build/js/project-list.min.js +44 -1
  33. package/build/js/quiz.min.js +1 -1
  34. package/build/js/track-my-order.min.js +1 -1
  35. package/package.json +1 -1
  36. package/src/components/checkout-payment-details-v2.hbs +4 -3
  37. package/src/components/gift-cards-hint.hbs +9 -0
  38. package/src/components/gift-cards.hbs +90 -0
  39. package/src/components/giftcard-chip.hbs +23 -0
  40. package/src/components/giftcard-summary.hbs +6 -0
  41. package/src/elements/form-row.hbs +1 -1
  42. package/src/elements/input.hbs +31 -2
  43. package/src/img/billie-pay-later.svg +13 -0
  44. package/src/img/giftcard.svg +28 -0
  45. package/src/js/components/general/notification.js +2 -1
  46. package/src/js/emulation/basket-data.js +2126 -2038
  47. package/src/js/emulation/checkLocalEnv.js +6 -5
  48. package/src/js/emulation/checkout-data.js +35 -0
  49. package/src/js/emulation/checkout-payment-details.js +28 -26
  50. package/src/js/emulation/forms.js +16 -10
  51. package/src/js/emulation/gift-cards.js +205 -0
  52. package/src/js/page/basket/basket-update-cart-action.js +4 -1
  53. package/src/js/page/basket/klarna.js +13 -3
  54. package/src/js/page/basket-v2.js +6 -2
  55. package/src/js/page/components/gift-cards.js +915 -0
  56. package/src/js/page/components/order-summary.js +42 -25
  57. package/src/js/page/components/toggle-password-visibility.js +22 -0
  58. package/src/js/page/components/voucher.js +52 -47
  59. package/src/js/page/utils/gift-cards-utils.js +188 -0
  60. package/src/js/page/utils/input-handling.js +92 -0
  61. package/src/js/page/utils/show-hide-input.js +28 -0
  62. package/src/js/page/utils/validation.js +46 -1
  63. package/src/layouts/checkout.hbs +1 -5
  64. package/src/page_my-account_change-password.html +1 -0
  65. package/src/page_payment-details-with-gift-card.html +8 -5
  66. package/src/scss/components/_gift-cards.scss +360 -0
  67. package/src/scss/components/checkout-payment-details-v2.scss +6 -2
  68. package/src/scss/pages/page_checkout_delivery-new.scss +26 -0
  69. package/src/js/components/toggle-password-visibility.js +0 -58
@@ -257,7 +257,6 @@ export function wrapWithError(element) {
257
257
 
258
258
  }
259
259
 
260
-
261
260
  export function addErrorMessage(element, errorMessage) {
262
261
  if (errorMessage) {
263
262
  $(element).append('<div class="form-row__error">' + errorMessage + '</div>');
@@ -316,3 +315,49 @@ export function validateGuidPattern (value) {
316
315
  export function validateUserFriendlyIdPattern (value) {
317
316
  return patterns.userFriendlyIdPattern.test(value);
318
317
  }
318
+
319
+ export function showErrorText($input, message, fieldSelector, errorTextClass, errorClass, ariaInvalidAttr) {
320
+ const $field = $input.closest(fieldSelector);
321
+ $field.addClass(errorClass);
322
+ $input.attr(ariaInvalidAttr, 'true');
323
+
324
+ let $err = $field.find(errorTextClass);
325
+ if (!$err.length) {
326
+ $err = $(`<div class="${errorTextClass.slice(1)}" />`).appendTo($field);
327
+ }
328
+ $err.text(message);
329
+ }
330
+
331
+ export function clearErrorText($input, fieldSelector, errorTextClass, errorClass, ariaInvalidAttr) {
332
+ const $field = $input.closest(fieldSelector);
333
+ $field.removeClass(errorClass);
334
+ $input.removeAttr(ariaInvalidAttr);
335
+ $field.find(errorTextClass).remove();
336
+ }
337
+
338
+ function digitsOnly(value) {
339
+ return String(value || '').replace(/\D/g, '');
340
+ }
341
+
342
+ function hasExactDigits(value, n) {
343
+ return digitsOnly(value).length === Number(n);
344
+ }
345
+
346
+ function validateByPredicate($input, predicate, message, {
347
+ fieldSelector,
348
+ errorText: errorTextClass,
349
+ fieldError: errorClass,
350
+ ariaInvalidAttr,
351
+ }) {
352
+ const ok = !!predicate(String($input.val() || ''));
353
+ if (!ok) {
354
+ showErrorText($input, message, fieldSelector, errorTextClass, errorClass, ariaInvalidAttr);
355
+ } else {
356
+ clearErrorText($input, fieldSelector, errorTextClass, errorClass, ariaInvalidAttr);
357
+ }
358
+ return ok;
359
+ }
360
+
361
+ export function validateExactDigits($input, n, message, cfg) {
362
+ return validateByPredicate($input, (v) => hasExactDigits(v, n), message, cfg);
363
+ }