wickes-css2 2.102.0-lg-788-improve-mini-basket.6 → 2.103.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 (114) hide show
  1. package/Readme.md +1 -3
  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-payment-details-v2.css +1 -1
  5. package/build/css/homepage-main.css +1 -1
  6. package/build/css/kitchen-plp-main.css +1 -1
  7. package/build/css/main.css +1 -1
  8. package/build/css/my-account-main-v2.css +1 -1
  9. package/build/css/my-account-main.css +1 -1
  10. package/build/css/pages/my-account-v2.css +1 -1
  11. package/build/css/pages/page_checkout_delivery-new.css +1 -1
  12. package/build/css/pages/page_products-list-combined.css +1 -1
  13. package/build/css/pages/page_products-list.css +1 -1
  14. package/build/css/pdp-main-before-combine.css +1 -1
  15. package/build/css/pdp-main-non-critical.css +1 -1
  16. package/build/css/pdp-main.css +1 -1
  17. package/build/css/plp-main.css +1 -1
  18. package/build/css/store-locator-main.css +1 -1
  19. package/build/img/giftcard.svg +28 -0
  20. package/build/js/account-members.min.js +1 -1
  21. package/build/js/basket.min.js +2 -2
  22. package/build/js/bundle.min.js +1 -1
  23. package/build/js/checkout.min.js +2 -2
  24. package/build/js/emulation.min.js +76 -1024
  25. package/build/js/general.bundle.min.js +1 -1
  26. package/build/js/gift-cards.min.js +1 -0
  27. package/build/js/merged-checkout.min.js +2 -2
  28. package/build/js/page/basket-v2.js +244 -138
  29. package/build/js/page/components/discounts.js +6 -6
  30. package/build/js/page/components/gift-cards.js +610 -0
  31. package/build/js/page/components/toggle-password-visibility.js +22 -0
  32. package/build/js/page/plp-cards-v2.js +6 -15
  33. package/build/js/page/plp-load-more.js +1 -1
  34. package/build/js/page/utils/gift-cards-utils.js +43 -0
  35. package/build/js/page/utils/show-hide-input.js +28 -0
  36. package/build/js/pdp.bundle.min.js +1 -1
  37. package/build/js/plp.bundle.min.js +1 -1
  38. package/build/js/project-list.min.js +1 -1
  39. package/build/js/toggle-password-visibility.min.js +1 -0
  40. package/package.json +2 -2
  41. package/src/components/card_product_v2.hbs +5 -10
  42. package/src/components/checkout-payment-details-v2.hbs +2 -1
  43. package/src/components/gift-cards-hint.hbs +9 -0
  44. package/src/components/gift-cards.hbs +89 -0
  45. package/src/components/giftcard-chip.hbs +23 -0
  46. package/src/components/injected-content.hbs +1 -1
  47. package/src/components/mini-basket/mini-basket-empty.hbs +13 -3
  48. package/src/components/mini-basket/mini-basket.hbs +13 -32
  49. package/src/components/mini-basket/product-item.hbs +16 -37
  50. package/src/data/data_confirmation-summary.json +2 -4
  51. package/src/data/data_mini-basket.json +80 -4
  52. package/src/data/data_search-results_v2.json +141 -56
  53. package/src/data/my-account/data_my-account.json +6 -0
  54. package/src/elements/form-row.hbs +1 -1
  55. package/src/elements/input.hbs +31 -2
  56. package/src/img/giftcard.svg +28 -0
  57. package/src/js/components/general/cart-slider.js +0 -3
  58. package/src/js/components/general/create-popup-slider.js +1 -4
  59. package/src/js/components/general/mini-basket-slider.js +8 -0
  60. package/src/js/components/product-banner.js +148 -0
  61. package/src/js/emulation/checkout-data.js +35 -0
  62. package/src/js/emulation/checkout-payment-details.js +23 -14
  63. package/src/js/emulation/custom-slider-emulation.js +10 -4
  64. package/src/js/emulation/forms.js +7 -2
  65. package/src/js/page/basket-v2.js +244 -138
  66. package/src/js/page/components/discounts.js +6 -6
  67. package/src/js/page/components/gift-cards.js +610 -0
  68. package/src/js/page/components/toggle-password-visibility.js +22 -0
  69. package/src/js/page/plp-cards-v2.js +6 -15
  70. package/src/js/page/plp-load-more.js +1 -1
  71. package/src/js/page/utils/gift-cards-utils.js +43 -0
  72. package/src/js/page/utils/show-hide-input.js +28 -0
  73. package/src/layouts/base.hbs +6 -0
  74. package/src/page_my-account_change-password.html +1 -0
  75. package/src/page_payment-details-with-gift-card.html +2 -1
  76. package/src/page_plp_v2.html +6 -16
  77. package/src/page_search-results.html +2 -12
  78. package/src/page_tradePro_rewards_home_installer_message.html +56 -0
  79. package/src/page_tradePro_rewards_instore_installer_message.html +77 -0
  80. package/src/partials/scripts.hbs +0 -1
  81. package/src/scss/components/_custom-slider.scss +3 -125
  82. package/src/scss/components/_gift-cards.scss +357 -0
  83. package/src/scss/components/_popover-mini-basket.scss +4 -0
  84. package/src/scss/components/card-product-banner.scss +3 -91
  85. package/src/scss/components/checkout-payment-details-v2.scss +2 -0
  86. package/src/scss/pages/my-account-v2.scss +29 -0
  87. package/src/scss/pages/page_checkout_delivery-new.scss +19 -0
  88. package/src/scss/pages/page_products-list-combined.scss +0 -11
  89. package/src/scss/pages/page_products-list.scss +0 -8
  90. package/src/sitemap.html +8 -0
  91. package/build/js/mini-basket-slider.min.js +0 -1
  92. package/build/js/page/basket/basket-update-cart-action.js +0 -60
  93. package/build/js/page/basket/basket-update-cart.js +0 -29
  94. package/build/js/page/basket/basket-utils.js +0 -50
  95. package/build/js/page/basket/mini-basket-total.js +0 -97
  96. package/build/js/page/basket/quantity-change-handler.js +0 -56
  97. package/build/js/page/basket/update-quantity-operation.js +0 -37
  98. package/build/js/page/basket/update-quantity.js +0 -65
  99. package/build/js/page/components/mini-basket-slider.js +0 -535
  100. package/src/components/card_sponsor_banner.hbs +0 -8
  101. package/src/components/card_sponsor_product.hbs +0 -6
  102. package/src/components/mini-basket/mini-basket-order-item.hbs +0 -73
  103. package/src/js/components/banner-placement-manager.js +0 -258
  104. package/src/js/components/toggle-password-visibility.js +0 -58
  105. package/src/js/emulation/banner-placement-manager.js +0 -53
  106. package/src/js/emulation/mini-basket-data.js +0 -949
  107. package/src/js/page/basket/basket-update-cart-action.js +0 -60
  108. package/src/js/page/basket/basket-update-cart.js +0 -29
  109. package/src/js/page/basket/basket-utils.js +0 -50
  110. package/src/js/page/basket/mini-basket-total.js +0 -97
  111. package/src/js/page/basket/quantity-change-handler.js +0 -56
  112. package/src/js/page/basket/update-quantity-operation.js +0 -37
  113. package/src/js/page/basket/update-quantity.js +0 -65
  114. package/src/js/page/components/mini-basket-slider.js +0 -535
@@ -0,0 +1,43 @@
1
+ const SUMMARY_SELECTORS = {
2
+ subTotal: { item: '.checkout-widget__item-bold', value: '.checkout-widget__item-value', title: 'Items subtotal:' },
3
+ vat: { item: '.checkout-widget__item-vat', value: '.checkout-widget__item-value', title: 'VAT:' },
4
+ clickAndCollectCost: { item: '.checkout-widget__item-cc', value: '.checkout-widget__item-value', title: 'Click & Collect:' },
5
+ deliveryCost: { item: '.checkout-widget__item-delivery', value: '.checkout-widget__item-value', title: 'Delivery:' },
6
+ charityPrice: { item: '.checkout-widget__item-charity', value: '.checkout-widget__item-value', title: 'Charity donation:' },
7
+ discountTotal: { item: '.checkout-widget__details-discount', value: '.checkout-widget__detail-value' },
8
+ total: { item: '.checkout-widget__total', value: '.checkout-widget__total-value' },
9
+ giftCardApplied: { item: '.checkout-widget__gift-card', value: '.checkout-widget__total-value', title: 'Gift Card:' },
10
+ };
11
+
12
+ export function formatGc16(raw) {
13
+ const digits = String(raw || '').replace(/\D/g, '').slice(0, 16);
14
+ return digits.replace(/(\d{4})(?=\d)/g, '$1-');
15
+ }
16
+
17
+ export function buildHintContext(count, limit) {
18
+ const max = count >= limit;
19
+ return {
20
+ canAdd: !max,
21
+ max,
22
+ hintClass: `giftcard-summary__hint${max ? ' giftcard-summary__hint--max' : ''}`,
23
+ };
24
+ }
25
+
26
+ export function buildChipData($root, numberSelector) {
27
+ const digits = String($root.find(numberSelector).val() || '').replace(/\D/g, '');
28
+ const last5 = digits.slice(-5);
29
+ const id= `giftcard_${Date.now()}`;
30
+ const $giftcard = $root.closest('.giftcard');
31
+ const currency = $giftcard.data('currency') || '£';
32
+ const amount= ($giftcard.data('amount') != null ? $giftcard.data('amount') : '100.00');
33
+ return { id, last5, currency, amount };
34
+ }
35
+
36
+ export function buildSummaryEqualMap(data) {
37
+ return Object.entries(SUMMARY_SELECTORS).map(([key, d]) => ({
38
+ item: d.item,
39
+ itemValue: d.value,
40
+ dataValue: data[key],
41
+ ...(d.title ? { title: d.title } : {}),
42
+ }));
43
+ }
@@ -0,0 +1,28 @@
1
+ export function initializeInputToggle($container) {
2
+ const $input = $container.find('input');
3
+ const $toggle = $container.find('.toggle-show');
4
+
5
+ if (!$input.length || !$toggle.length) return;
6
+
7
+ const handleToggleClick = (e) => {
8
+ e.preventDefault();
9
+
10
+ const isPassword = String($input.attr('type')) === 'password';
11
+ $input.attr('type', isPassword ? 'text' : 'password');
12
+ const $icon = $toggle.find('svg, i').first();
13
+
14
+ if ($icon.length) {
15
+ $icon.removeClass('fa-eye fa-eye-slash').addClass(isPassword ? 'fa-eye' : 'fa-eye-slash');
16
+ }
17
+ };
18
+
19
+ const updateToggleVisibility = () => {
20
+ $toggle.toggle(($input.val() || '').length > 0);
21
+ };
22
+
23
+ $toggle.off('click.passwordToggle mousedown.passwordToggle')
24
+ .on('mousedown.passwordToggle', handleToggleClick);
25
+
26
+ $input.off('input.passwordToggle').on('input.passwordToggle', updateToggleVisibility);
27
+ updateToggleVisibility();
28
+ }